r53z 0.2.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 +7 -0
- data/.gitignore +53 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +84 -0
- data/LICENSE +674 -0
- data/LICENSE.txt +16 -0
- data/README.md +141 -0
- data/README.rdoc +1 -0
- data/Rakefile +62 -0
- data/bin/console +16 -0
- data/bin/r53z +39 -0
- data/bin/setup +8 -0
- data/lib/r53z.rb +10 -0
- data/lib/r53z/cli.rb +117 -0
- data/lib/r53z/client.rb +220 -0
- data/lib/r53z/config.rb +22 -0
- data/lib/r53z/file.rb +33 -0
- data/lib/r53z/version.rb +3 -0
- data/r53z.gemspec +38 -0
- metadata +189 -0
data/lib/r53z/config.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'inifile'
|
2
|
+
|
3
|
+
module R53z
|
4
|
+
class Config
|
5
|
+
include Methadone::Main
|
6
|
+
include Methadone::CLILogging
|
7
|
+
attr_reader :creds
|
8
|
+
|
9
|
+
def initialize(config_file=nil)
|
10
|
+
unless config_file
|
11
|
+
# Default to ~/.aws/credentials
|
12
|
+
config_file = File.join(ENV['HOME'], ".aws/credentials")
|
13
|
+
end
|
14
|
+
@creds = IniFile.load(config_file)
|
15
|
+
end
|
16
|
+
|
17
|
+
def [](param)
|
18
|
+
return self.creds[param]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/lib/r53z/file.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
# Helper functions for working with JSON files containing resource record sets
|
4
|
+
module R53z
|
5
|
+
# Returns a hash of the contents of named file
|
6
|
+
class JsonFile
|
7
|
+
include Methadone::Main
|
8
|
+
include Methadone::CLILogging
|
9
|
+
|
10
|
+
def self.read_json(path:)
|
11
|
+
file = File.read(self.fix_path_json(path))
|
12
|
+
JSON.parse(file, :symbolize_names => true)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.write_json(path:, data:)
|
16
|
+
File.open(self.fix_path_json(path), 'w') do |f|
|
17
|
+
f.write(JSON.pretty_generate(data))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.fix_path_json(path)
|
22
|
+
unless path[-5..-1] == '.json'
|
23
|
+
if path[-1] == '.'
|
24
|
+
return path + 'json'
|
25
|
+
else
|
26
|
+
return path + '.json'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
return path
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/lib/r53z/version.rb
ADDED
data/r53z.gemspec
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'r53z/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "r53z"
|
8
|
+
spec.license="gplv3"
|
9
|
+
spec.version = R53z::VERSION
|
10
|
+
spec.authors = ["Joe Cooper"]
|
11
|
+
spec.email = ["swelljoe@gmail.com"]
|
12
|
+
|
13
|
+
spec.summary = %q{Simple zone manager for Route 53.}
|
14
|
+
spec.homepage = "http://github.com/swelljoe/r53z"
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
+
if spec.respond_to?(:metadata)
|
19
|
+
spec.metadata['allowed_push_host'] = 'http://blahblah.mygemserver.com'
|
20
|
+
else
|
21
|
+
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
22
|
+
end
|
23
|
+
|
24
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
|
+
spec.bindir = "exe"
|
26
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
|
+
spec.require_paths = ["lib"]
|
28
|
+
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
+
spec.add_development_dependency('rdoc')
|
32
|
+
spec.add_development_dependency('aruba')
|
33
|
+
spec.add_dependency('methadone', '~> 1.9.2')
|
34
|
+
spec.add_dependency('aws-sdk')
|
35
|
+
spec.add_dependency('inifile')
|
36
|
+
spec.add_development_dependency('pry')
|
37
|
+
spec.add_development_dependency('test-unit')
|
38
|
+
end
|
metadata
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: r53z
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joe Cooper
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.12'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.12'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rdoc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: aruba
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: methadone
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.9.2
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.9.2
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: aws-sdk
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: inifile
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: test-unit
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description:
|
140
|
+
email:
|
141
|
+
- swelljoe@gmail.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- .gitignore
|
147
|
+
- Gemfile
|
148
|
+
- Gemfile.lock
|
149
|
+
- LICENSE
|
150
|
+
- LICENSE.txt
|
151
|
+
- README.md
|
152
|
+
- README.rdoc
|
153
|
+
- Rakefile
|
154
|
+
- bin/console
|
155
|
+
- bin/r53z
|
156
|
+
- bin/setup
|
157
|
+
- lib/r53z.rb
|
158
|
+
- lib/r53z/cli.rb
|
159
|
+
- lib/r53z/client.rb
|
160
|
+
- lib/r53z/config.rb
|
161
|
+
- lib/r53z/file.rb
|
162
|
+
- lib/r53z/version.rb
|
163
|
+
- r53z.gemspec
|
164
|
+
homepage: http://github.com/swelljoe/r53z
|
165
|
+
licenses:
|
166
|
+
- gplv3
|
167
|
+
metadata:
|
168
|
+
allowed_push_host: http://blahblah.mygemserver.com
|
169
|
+
post_install_message:
|
170
|
+
rdoc_options: []
|
171
|
+
require_paths:
|
172
|
+
- lib
|
173
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - '>='
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
requirements: []
|
184
|
+
rubyforge_project:
|
185
|
+
rubygems_version: 2.0.14
|
186
|
+
signing_key:
|
187
|
+
specification_version: 4
|
188
|
+
summary: Simple zone manager for Route 53.
|
189
|
+
test_files: []
|