dping 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/dping +13 -0
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94ecab6f5dd15a0f37a1dd21df07efe1a13e4512
|
4
|
+
data.tar.gz: f83388c12a271e388e34787d760e9ea220f41019
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b1bc274962fca2d06731a693c5fb00f0d26655aff93a83ffda9ace9f7b5a1fe232fd54448e07d2df253157ebec4583407bbb1180c09c50527315d48a5bee1b4
|
7
|
+
data.tar.gz: fe76567819585bb6cd126ac10aadf76864871790f6d3959879c499fafb6872bd949c8fa75ce486b1abf40f90184c2747aa56d642e586b3fae87e41f6154cdead
|
data/bin/dping
CHANGED
@@ -2,8 +2,16 @@
|
|
2
2
|
|
3
3
|
require "fog"
|
4
4
|
|
5
|
+
$verbose = false
|
6
|
+
%w(-v --verbose).each { |f| $verbose ||= ARGV.delete(f) }
|
7
|
+
|
8
|
+
def log(message)
|
9
|
+
puts(message) if $verbose
|
10
|
+
end
|
11
|
+
|
5
12
|
target_name = ARGV.first
|
6
13
|
abort("Usage: dping <domain>") unless target_name
|
14
|
+
log("Target name: #{target_name}")
|
7
15
|
|
8
16
|
pairs = File.read(ENV["HOME"] + "/.aws-credentials-master").split.map { |l|
|
9
17
|
l.split("=").map { |v| v.strip }
|
@@ -12,6 +20,7 @@ conf = Hash[pairs]
|
|
12
20
|
|
13
21
|
id = conf["AWSAccessKeyId"] or abort("Need AWSAccessKeyId")
|
14
22
|
secret = conf["AWSSecretKey"] or abort("Need AWSSecretKey")
|
23
|
+
log("AWS access key ID: #{id}")
|
15
24
|
|
16
25
|
dns = Fog::DNS.new({
|
17
26
|
:provider => 'AWS',
|
@@ -21,13 +30,17 @@ dns = Fog::DNS.new({
|
|
21
30
|
|
22
31
|
# get the zone by stripping the subdomain
|
23
32
|
target_domain = target_name.split(".").reverse[0, 2].reverse.join(".")
|
33
|
+
log("Target zone: #{target_domain}")
|
24
34
|
|
25
35
|
ip = Excon.get("https://icanhazip.com", expects: 200).body.strip
|
36
|
+
log("IP: #{ip}")
|
26
37
|
|
27
38
|
zone = dns.zones.detect { |z| z.domain =~ /#{target_domain}\.?/ }
|
28
39
|
abort("Zone not found") unless zone
|
40
|
+
log("Zone ID: #{zone.id}")
|
29
41
|
|
30
42
|
record = zone.records.detect { |r| r.name =~ /#{target_name}\.?/ }
|
31
43
|
abort("Record not found") unless record
|
32
44
|
|
33
45
|
record.modify(value: [ip])
|
46
|
+
log("Update successful")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandur
|
@@ -10,6 +10,26 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: excon
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.39'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.39.5
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.39'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.39.5
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: fog
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|