dping 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dping +13 -0
  3. metadata +21 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ba5dc4a450516dd09fbbdffa962618fb1760900
4
- data.tar.gz: 6c0c2f461f8e76757e8184fc3ae04fee96353dbc
3
+ metadata.gz: 94ecab6f5dd15a0f37a1dd21df07efe1a13e4512
4
+ data.tar.gz: f83388c12a271e388e34787d760e9ea220f41019
5
5
  SHA512:
6
- metadata.gz: d0ad915a0cb04e48c7960e02499f1e596230038a9b6223c1bce87b5a83126bcd352304f2943ffb3ae2e6fb788840c78f12e95b69afc32ec6aa2e06dcb7276bcc
7
- data.tar.gz: 67e9f39dc4d85356fd1b45d1f92f328c0ccc4c4f464eeb97804ce286cd7fbef6938ed53b550cd49f08cc36c1e0a42ce99db9fcd43c219e87f5c176997f2f991d
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.1
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