mtgsy 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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