mtgsy 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a46b5c5e1dc1e608c1b27a08f409d20e22eea1da
4
- data.tar.gz: aa0bb7d8a8d6330338f3c7e927118889a1e5cbea
3
+ metadata.gz: d8de684ba598b5206bc2766c30b62cb6609bdc76
4
+ data.tar.gz: 6e9bb17d708a1d88f894b07f1dde106a2cfa0c29
5
5
  SHA512:
6
- metadata.gz: cbc3f9d6544754fda8559784a1397c66069bb9a9206bdb681720ed16cd6363426b1017b0380cdcd18022fc06dd805153512775676353dae74ebd656419d00806
7
- data.tar.gz: 1ac0bc737253a87b5533ebc584463816a8c2d55f883c557bb4ef34c3319d42e42a9b40b0099e503d54f6e9f24c7773d2e2a2c053e70bb877001407115937f819
6
+ metadata.gz: 9a77fc5398d06bf09d7d3222c9aaac3df01efc3bd9c75a48a46e2b1aef4bc5d668c8a18c7ee2cac3b0a62ddbe8743f0693890c1687399f774333c2e06c83d9a4
7
+ data.tar.gz: 439c005fe1896d5d46cc7858531bad6fdf107c6f5779ffb1242ea29e7d237146efb93a0cf60eda0a2fee50f022d1638fb80265c93eb16cc454e7646ff3f808c2
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ === 0.3.0
2
+
3
+ * New Features
4
+ * Added command line tool for modifying DNS
5
+ * Other Stuff
6
+ * Refactored search method
7
+
1
8
  === 0.2.2
2
9
 
3
10
  * Bugfixes
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require 'mtgsy'
4
+ begin
5
+ require 'io/console'
6
+ rescue LoadError
7
+ end
8
+
9
+ more_than_one_command_flag=false
10
+ options = {}
11
+ optparse = OptionParser.new do |opts|
12
+ opts.banner = "Usage: #{File.basename($0)} [options]"
13
+
14
+ opts.on("-u", "--username USERNAME",
15
+ "Username to authenticate to mtgsy.net"
16
+ ) { |value| options[:username] = value }
17
+
18
+ opts.on("-p", "--password PASSWORD",
19
+ "Password to authenticate to mtgsy.net"
20
+ ) { |value| options[:password] = value }
21
+
22
+ opts.on("--add",
23
+ "Use this opt to add the record."
24
+ ) { |value| more_than_one_command_flag=true if options[:command]; options[:command] = "add" }
25
+
26
+ opts.on("--delete",
27
+ "Use this opt to delete the record."
28
+ ) { |value| more_than_one_command_flag=true if options[:command]; options[:command] = "delete" }
29
+
30
+ opts.on("--update",
31
+ "Use this opt to udate the record."
32
+ ) { |value| more_than_one_command_flag=true if options[:command]; options[:command] = "update" }
33
+
34
+ opts.on("--domain DOMAINNAME",
35
+ "Domain name / Zone to interact with"
36
+ ) { |value| options[:domainname] = value }
37
+
38
+ opts.on("--name NAME",
39
+ "Record name, e.g. www, *.cust, random.thing, etc..."
40
+ ) { |value| options[:name] = value }
41
+
42
+ opts.on("--type TYPE",
43
+ "Record type, e.g. A, CNAME, TXT, etc..."
44
+ ) { |value| options[:type] = value }
45
+
46
+ opts.on("--data DATA",
47
+ "Record data, e.g. 56.56.23.233, my.ssl.zendesk.com., etc..."
48
+ ) { |value| options[:data] = value }
49
+
50
+ opts.on("--aux AUX",
51
+ "Record aux, info: http://www.mtgsy.net/dns/record_aux.htm"
52
+ ) { |value| options[:aux] = value }
53
+
54
+ opts.on("--ttl TTL",
55
+ "Record TTL, e.g. 300, 900, 1800, 3600, etc..."
56
+ ) { |value| options[:ttl] = value }
57
+
58
+ opts.on("-x", "--debug",
59
+ "Enables some helpful debugging output."
60
+ ) { |value| options[:debug] = true }
61
+
62
+ opts.on("-h", "--help", "Display this help message.") do
63
+ puts opts
64
+ exit
65
+ end
66
+ end
67
+
68
+ begin
69
+ optparse.parse!
70
+ rescue OptionParser::MissingArgument
71
+ puts "You're missing an argument...\n\n"
72
+ puts optparse
73
+ exit 1
74
+ end
75
+
76
+ if more_than_one_command_flag
77
+ $stderr.puts "You must only specify ONE command: --add, --update or --delete"
78
+ puts optparse
79
+ exit 1
80
+ end
81
+
82
+ p options if options[:debug]
83
+ p ARGV if options[:debug]
84
+
85
+
86
+ #######
87
+ ## MAIN
88
+ #######
89
+
90
+
91
+ client = Mtgsy::ApiClient.new
92
+
93
+ client.username = options[:username] if options[:username]
94
+ client.domainname = options[:domainname] if options[:domainname]
95
+
96
+ if options[:password]
97
+ client.password = options[:password]
98
+ else
99
+ print "Please enter your password: "
100
+ client.password = STDIN.noecho(&:gets).chomp
101
+ puts
102
+ end
103
+
104
+ name = options[:name] ? options[:name].to_s : nil
105
+ type = options[:type] ? options[:type].to_s : nil
106
+ data = options[:data] ? options[:data].to_s : nil
107
+ aux = options[:aux ] ? options[:aux].to_s : nil
108
+ ttl = options[:ttl ] ? options[:ttl].to_s : nil
109
+
110
+ client.add(name: name, type: type, data: data, aux: aux, ttl: ttl) if options[:command] == "add"
111
+ client.delete(name: name, type: type, data: data, aux: aux, ttl: ttl) if options[:command] == "delete"
112
+ client.update(name: name, type: type, data: data, aux: aux, ttl: ttl) if options[:command] == "update"
@@ -110,21 +110,13 @@ module Mtgsy
110
110
 
111
111
  search_data = [ name, type, data, aux, ttl ]
112
112
 
113
- num_of_search_elements = 0
114
- 0.upto(4) do |x|
115
- unless search_data[x] == nil
116
- num_of_search_elements += 1
117
- end
118
- end
119
-
120
113
  results = @records_ALL.select do |x|
121
- matched = 0
122
- ( matched += 1 if x[Mtgsy::RECORD_NAME] == search_data[Mtgsy::RECORD_NAME] ) if search_data[Mtgsy::RECORD_NAME]
123
- ( matched += 1 if x[Mtgsy::RECORD_TYPE] == search_data[Mtgsy::RECORD_TYPE] ) if search_data[Mtgsy::RECORD_TYPE]
124
- ( matched += 1 if x[Mtgsy::RECORD_DATA] == search_data[Mtgsy::RECORD_DATA] ) if search_data[Mtgsy::RECORD_DATA]
125
- ( matched += 1 if x[Mtgsy::RECORD_AUX] == search_data[Mtgsy::RECORD_AUX] ) if search_data[Mtgsy::RECORD_AUX]
126
- ( matched += 1 if x[Mtgsy::RECORD_TTL] == search_data[Mtgsy::RECORD_TTL] ) if search_data[Mtgsy::RECORD_TTL]
127
- true if matched == num_of_search_elements
114
+ ( return false unless x[Mtgsy::RECORD_NAME] == search_data[Mtgsy::RECORD_NAME] ) if search_data[Mtgsy::RECORD_NAME]
115
+ ( return false unless x[Mtgsy::RECORD_TYPE] == search_data[Mtgsy::RECORD_TYPE] ) if search_data[Mtgsy::RECORD_TYPE]
116
+ ( return false unless x[Mtgsy::RECORD_DATA] == search_data[Mtgsy::RECORD_DATA] ) if search_data[Mtgsy::RECORD_DATA]
117
+ ( return false unless x[Mtgsy::RECORD_AUX] == search_data[Mtgsy::RECORD_AUX] ) if search_data[Mtgsy::RECORD_AUX]
118
+ ( return false unless x[Mtgsy::RECORD_TTL] == search_data[Mtgsy::RECORD_TTL] ) if search_data[Mtgsy::RECORD_TTL]
119
+ true
128
120
  end
129
121
 
130
122
  results
data/lib/mtgsy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mtgsy
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtgsy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Barnett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-18 00:00:00.000000000 Z
11
+ date: 2013-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -55,7 +55,8 @@ dependencies:
55
55
  description: This is a ruby library for interacting with mtgsy (CloudFloor DNS).
56
56
  email:
57
57
  - jason.w.barnett@gmail.com
58
- executables: []
58
+ executables:
59
+ - mtgsyCommand.rb
59
60
  extensions: []
60
61
  extra_rdoc_files: []
61
62
  files:
@@ -65,6 +66,7 @@ files:
65
66
  - LICENSE.txt
66
67
  - README.md
67
68
  - Rakefile
69
+ - bin/mtgsyCommand.rb
68
70
  - lib/mtgsy.rb
69
71
  - lib/mtgsy/api_client.rb
70
72
  - lib/mtgsy/version.rb