dnsomatic 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,70 +22,70 @@ module DNSOMatic
22
22
  def parse(args)
23
23
  setdefaults()
24
24
  begin
25
- opts = OptionParser.new do |o|
26
- o.on('-m', '--minimum SEC', 'The minimum time between updates (def: 30m)') do |i|
27
- @@opts.minimum = i.to_i
28
- end
29
-
30
- o.on('-M', '--maximum SEC', 'The maximum time between updates (def: 15d)') do |i|
31
- @@opts.maximum = i.to_i
32
- end
33
- #
34
- #making this an option (off by default) means we can operate
35
- #completely silently by default.
36
- o.on('-a', '--alert', 'Emit an alert if the IP is updated') do |a|
37
- @@opts.alert = true
38
- end
39
-
40
- o.on('-n', '--name NAME', 'Only update host stanza NAME') do |n|
41
- @@opts.name = n
42
- end
43
-
44
- o.on('-d', '--display-config', 'Display the configuration and exit') do
45
- @@opts.showcf = true
46
- end
47
-
48
- o.on('-c', '--config FILE', 'Use an alternate config file') do |f|
49
- @@opts.cf = f
50
- end
51
-
52
- o.on('-f', '--force', 'Force an update, even if IP is unchanged') do
53
- @@opts.force = true
54
- end
55
-
56
- o.on('-p', '--print', 'Output the update URLs. No action taken') do
57
- @@opts.print = true
58
- end
59
-
60
- o.on('-v', '--verbose', 'Display runtime messages') do
61
- @@opts.verbose = true
62
- end
63
-
64
- o.on('-V', '--version', 'Display version and exit') do
65
- DNSOMatic::Logger.warn(DNSOMatic::VERSION)
66
- exit
67
- end
68
-
69
- o.on('-x', '--debug', 'Output additional info in error situations') do
70
- @@opts.debug = true
71
- end
72
-
73
- o.on('-h', '--help', 'Display this help text') do
74
- DNSOMatic::Logger.warn(o)
75
- exit
76
- end
77
- end
78
- opts.parse!(args)
79
-
80
- if args.size > 0
81
- raise(DNSOMatic::Error, "Extra arguments given: #{args.join(', ')}")
82
- end
25
+ opts = OptionParser.new do |o|
26
+ o.on('-m', '--minimum SEC', 'The minimum time between updates (def: 30m)') do |i|
27
+ @@opts.minimum = i.to_i
28
+ end
29
+
30
+ o.on('-M', '--maximum SEC', 'The maximum time between updates (def: 15d)') do |i|
31
+ @@opts.maximum = i.to_i
32
+ end
33
+ #
34
+ #making this an option (off by default) means we can operate
35
+ #completely silently by default.
36
+ o.on('-a', '--alert', 'Emit an alert if the IP is updated') do |a|
37
+ @@opts.alert = true
38
+ end
39
+
40
+ o.on('-n', '--name NAME', 'Only update host stanza NAME') do |n|
41
+ @@opts.name = n
42
+ end
43
+
44
+ o.on('-d', '--display-config', 'Display the configuration and exit') do
45
+ @@opts.showcf = true
46
+ end
47
+
48
+ o.on('-c', '--config FILE', 'Use an alternate config file') do |f|
49
+ @@opts.cf = f
50
+ end
51
+
52
+ o.on('-f', '--force', 'Force an update, even if IP is unchanged') do
53
+ @@opts.force = true
54
+ end
55
+
56
+ o.on('-p', '--print', 'Output the update URLs. No action taken') do
57
+ @@opts.print = true
58
+ end
59
+
60
+ o.on('-v', '--verbose', 'Display runtime messages') do
61
+ @@opts.verbose = true
62
+ end
63
+
64
+ o.on('-V', '--version', 'Display version and exit') do
65
+ DNSOMatic::Logger.warn(DNSOMatic::VERSION)
66
+ exit
67
+ end
68
+
69
+ o.on('-x', '--debug', 'Output additional info in error situations') do
70
+ @@opts.debug = true
71
+ end
72
+
73
+ o.on('-h', '--help', 'Display this help text') do
74
+ DNSOMatic::Logger.warn(o)
75
+ exit
76
+ end
77
+ end
78
+ opts.parse!(args)
79
+
80
+ if args.size > 0
81
+ raise(DNSOMatic::Error, "Extra arguments given: #{args.join(', ')}")
82
+ end
83
83
 
84
84
  rescue OptionParser::ParseError => e
85
- msg = "Extra/Unknown arguments used:\n"
86
- msg += "\t#{e.message}\n"
87
- msg += "Remaining args: #{args.join(', ')}\n" if args.size > 0
88
- raise(DNSOMatic::Error, msg)
85
+ msg = "Extra/Unknown arguments used:\n"
86
+ msg += "\t#{e.message}\n"
87
+ msg += "Remaining args: #{args.join(', ')}\n" if args.size > 0
88
+ raise(DNSOMatic::Error, msg)
89
89
  end
90
90
  end
91
91
 
@@ -106,7 +106,7 @@ module DNSOMatic
106
106
  @@opts.print = false
107
107
  @@opts.verbose = false
108
108
  @@opts.minimum = 1800 #30 minutes
109
- @@opts.maximum = 1296000 #15 days
109
+ @@opts.maximum = 1296000 #15 days
110
110
  @@opts.debug = false
111
111
  @@opts.alert = false
112
112
  end
@@ -24,20 +24,23 @@ module DNSOMatic
24
24
  # By default, the we'll honour the changed? status of the IPStatus object
25
25
  # returned to us, but if force is set to true, we'll send the update
26
26
  # request anyway.
27
- def update(force = false) url = upd_url()
27
+ def update(force = false)
28
+ url = upd_url()
29
+
30
+ DNSOMatic::Logger.log("Updating with URL: #{url}")
28
31
 
29
32
  if !@ipstatus.changed? and !force
30
- Logger::log("No change in IP detected for #{@config['hostname']}. Not updating.")
33
+ Logger::log("No change in IP detected for #{@config['hostname']}. Not updating.")
31
34
  else
32
- Logger::alert("Updating IP for #{@config['hostname']} to #{@ipstatus.ip}.")
33
- update = DNSOMatic::http_fetch(url)
35
+ Logger::alert("Updating IP for #{@config['hostname']} to #{@ipstatus.ip}.")
36
+ update = DNSOMatic::http_fetch(url)
34
37
 
35
- if !update.match(/^good\s+#{@ipstatus.ip}$/)
36
- msg = "Error updating host definition for #{@config['hostname']}\n"
37
- msg += "Results:\n#{update}\n"
38
- msg += "Error codes at: https://www.dnsomatic.com/wiki/api"
39
- raise(DNSOMatic::Error, msg)
40
- end
38
+ if !update.match(/^good\s+#{@ipstatus.ip}$/)
39
+ msg = "Error updating host definition for #{@config['hostname']}\n"
40
+ msg += "Results:\n#{update}\n"
41
+ msg += "Error codes at: https://www.dnsomatic.com/wiki/api"
42
+ raise(DNSOMatic::Error, msg)
43
+ end
41
44
  end
42
45
 
43
46
  true
@@ -56,7 +59,7 @@ module DNSOMatic
56
59
  def to_s
57
60
  upd_url
58
61
  end
59
-
62
+
60
63
  private
61
64
  def upd_url
62
65
  opt_params = %w(wildcard mx backmx offline)
@@ -69,9 +72,9 @@ module DNSOMatic
69
72
  url = "https://#{u}:#{p}@updates.dnsomatic.com/nic/update?"
70
73
  name_ip = "hostname=#{@config['hostname']}&myip=#{@ipstatus.ip}"
71
74
  url += opt_params.inject(name_ip) do |params, curp|
72
- val = @config[curp]
73
- next if val.eql?('') or val.nil?
74
- params += "&#{curp}=#{val}"
75
+ val = @config[curp]
76
+ next if val.eql?('') or val.nil?
77
+ params += "&#{curp}=#{val}"
75
78
  end
76
79
  url
77
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsomatic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Walton
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-01 00:00:00 -04:00
12
+ date: 2009-10-03 00:00:00 -04:00
13
13
  default_executable: dnsomatic
14
14
  dependencies: []
15
15
 
@@ -23,29 +23,30 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - bin/dnsomatic
26
+ - lib/dnsomatic.rb
26
27
  - lib/dnsomatic
27
- - lib/dnsomatic/updater.rb
28
28
  - lib/dnsomatic/logger.rb
29
29
  - lib/dnsomatic/iplookup.rb
30
- - lib/dnsomatic/opts.rb
30
+ - lib/dnsomatic/updater.rb
31
31
  - lib/dnsomatic/config.rb
32
- - lib/dnsomatic.rb
33
- - tests/test_ipstatus.rb
34
- - tests/test_opts.rb
35
- - tests/test_logger.rb
36
- - tests/test_updater.rb
32
+ - lib/dnsomatic/open-uri.rb
33
+ - lib/dnsomatic/opts.rb
34
+ - tests/test_config.rb
37
35
  - tests/all_tests.rb
36
+ - tests/test_opts.rb
37
+ - tests/test_ipstatus.rb
38
+ - tests/test_iplookup.rb
38
39
  - tests/confs
39
40
  - tests/confs/1_stanza_no_defs_no_u_p.cf
40
- - tests/confs/working_only_defs.cf
41
- - tests/confs/defs_with_mx_set.cf
41
+ - tests/confs/3_stanzas_no_def_no_u_p.cf
42
+ - tests/confs/defs_with_bad_mx_set.cf
42
43
  - tests/confs/3_good_stanzas.cf
44
+ - tests/confs/defs_with_mx_set.cf
45
+ - tests/confs/working_only_defs.cf
43
46
  - tests/confs/empty_conf.cf
44
47
  - tests/confs/defs_with_override_ipfetch.cf
45
- - tests/confs/defs_with_bad_mx_set.cf
46
- - tests/confs/3_stanzas_no_def_no_u_p.cf
47
- - tests/test_config.rb
48
- - tests/test_iplookup.rb
48
+ - tests/test_logger.rb
49
+ - tests/test_updater.rb
49
50
  has_rdoc: true
50
51
  homepage: http://rubyforge.org/projects/dnsomatic
51
52
  post_install_message:
@@ -68,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
69
  requirements: []
69
70
 
70
71
  rubyforge_project: http://rubyforge.org/projects/dnsomatic
71
- rubygems_version: 1.1.1
72
+ rubygems_version: 1.3.1
72
73
  signing_key:
73
74
  specification_version: 2
74
75
  summary: A DNS-O-Matic Update Client