vscripts 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +13 -5
  2. data/.travis.yml +8 -1
  3. data/CHANGELOG.md +23 -0
  4. data/README.md +3 -1
  5. data/Rakefile +1 -3
  6. data/VERSION +1 -1
  7. data/lib/vscripts.rb +1 -1
  8. data/lib/vscripts/aws.rb +5 -0
  9. data/lib/vscripts/aws/ec2.rb +11 -16
  10. data/lib/vscripts/command_line.rb +3 -3
  11. data/lib/vscripts/{command.rb → commands.rb} +1 -1
  12. data/lib/vscripts/commands/identify.rb +9 -19
  13. data/lib/vscripts/commands/tags2facts.rb +7 -25
  14. data/lib/vscripts/util.rb +12 -0
  15. data/lib/vscripts/util/local_system.rb +1 -29
  16. data/spec/aws_spec_helper.rb +10 -0
  17. data/spec/spec_helper.rb +27 -2
  18. data/spec/unit/vscripts/aws/ec2_spec.rb +98 -0
  19. data/spec/unit/vscripts/aws/metadata_spec.rb +62 -0
  20. data/spec/{vscripts → unit/vscripts}/aws_spec.rb +3 -1
  21. data/spec/unit/vscripts/command_line_spec.rb +43 -0
  22. data/spec/unit/vscripts/commands/identify_spec.rb +178 -0
  23. data/spec/unit/vscripts/commands/tags2facts_spec.rb +52 -0
  24. data/spec/unit/vscripts/commands_spec.rb +10 -0
  25. data/spec/unit/vscripts/util/local_system_spec.rb +82 -0
  26. data/spec/{vscripts → unit/vscripts}/version_spec.rb +1 -0
  27. data/spec/unit/vscripts_spec.rb +27 -0
  28. data/tasks/deploy.rake +6 -1
  29. data/tasks/lint.rake +1 -1
  30. data/vscripts.gemspec +3 -1
  31. metadata +86 -56
  32. data/.rspec +0 -2
  33. data/spec/vscripts/aws/ec2_spec.rb +0 -90
  34. data/spec/vscripts/aws/metadata_spec.rb +0 -48
  35. data/spec/vscripts/command_line_spec.rb +0 -34
  36. data/spec/vscripts/command_spec.rb +0 -9
  37. data/spec/vscripts/commands/identify_spec.rb +0 -111
  38. data/spec/vscripts/commands/tags2facts_spec.rb +0 -35
  39. data/spec/vscripts/util/local_system_spec.rb +0 -80
  40. data/spec/vscripts_spec.rb +0 -4
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'vscripts/commands'
3
+
4
+ describe VScripts::Commands do
5
+ describe '#list' do
6
+ it 'returns a list of available commands' do
7
+ expect(VScripts::Commands.list).to be_an_instance_of Array
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,82 @@
1
+ require 'spec_helper'
2
+ require 'tempfile'
3
+ require 'vscripts/util'
4
+
5
+ describe VScripts::Util::LocalSystem do
6
+ subject { Object.new.extend VScripts::Util }
7
+
8
+ let(:test_dir) { Dir::Tmpname.make_tmpname('/tmp/vscripts-test-', nil) }
9
+ let(:test_file) { "#{test_dir}/test_file" }
10
+ let(:test_cont) { 'testing content' }
11
+
12
+ describe '#hosts_path' do
13
+ it 'returns the path to hosts file' do
14
+ expect(subject.hosts_path).to be_a String
15
+ end
16
+ end
17
+
18
+ describe '#hostname_path' do
19
+ it 'returns the path to the hostname file' do
20
+ expect(subject.hostname_path).to be_a String
21
+ end
22
+ end
23
+
24
+ describe '#hosts_file' do
25
+ it 'returns the an array' do
26
+ allow(File).to receive(:read).and_return(test_cont)
27
+ expect(subject.hosts_file).to be_a String
28
+ end
29
+ end
30
+
31
+ describe '#local_fqdn' do
32
+ it 'returns the local FQDN' do
33
+ expect(subject.local_fqdn).to be_a String
34
+ end
35
+ end
36
+
37
+ describe '#local_host_name' do
38
+ it 'returns the local host name' do
39
+ expect(subject.local_host_name).to be_a String
40
+ end
41
+ end
42
+
43
+ describe '#local_domain_name' do
44
+ it 'returns the local domain name' do
45
+ expect(subject.local_domain_name).to be_a String
46
+ end
47
+ end
48
+
49
+ describe '#external_dns' do
50
+ it 'returns the external dns' do
51
+ allow(subject).to receive('`').and_return('test')
52
+ expect(subject.external_dns).to eq('test')
53
+ allow(subject).to receive('`').and_raise(StandardError)
54
+ expect(subject.external_dns).to be false
55
+ end
56
+ end
57
+
58
+ describe '#ensure_file_dir' do
59
+ it 'create a directory for the specified files' do
60
+ subject.ensure_file_dir(test_file)
61
+ expect(Dir.exists?(test_dir)).to be true
62
+ end
63
+ end
64
+
65
+ describe '#write_file' do
66
+ it 'should write to a file' do
67
+ subject.write_file(test_file, test_cont)
68
+ expect(IO.read(test_file)).to eq(test_cont)
69
+ $stderr = StringIO.new
70
+ allow(File).to receive(:open).and_raise(Errno::EACCES)
71
+ expect { subject.write_file(test_file, test_cont) }.to raise_error(SystemExit)
72
+ $stderr = STDERR
73
+ end
74
+ end
75
+
76
+ describe '#ensure_file_content' do
77
+ it 'should ensure content of file' do
78
+ subject.ensure_file_content(test_file, test_cont)
79
+ expect(IO.read(test_file)).to eq(test_cont)
80
+ end
81
+ end
82
+ end
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'vscripts/version'
2
3
 
3
4
  describe 'VScripts::VERSION' do
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'vscripts'
3
+
4
+ describe VScripts do
5
+ before(:all) do
6
+ $stdout = StringIO.new
7
+ @cmd = VScripts::Commands.list.first.to_s.downcase
8
+ end
9
+
10
+ after(:all) do
11
+ $stdout = STDOUT
12
+ end
13
+
14
+ describe '#run' do
15
+ it 'returns help' do
16
+ expect{subject.run(['-h'])}.to raise_error(SystemExit)
17
+ end
18
+
19
+ it 'returns version' do
20
+ expect{subject.run(['-v'])}.to raise_error(SystemExit)
21
+ end
22
+
23
+ it 'returns command help' do
24
+ expect{subject.run([@cmd, '-h'])}.to raise_error(SystemExit)
25
+ end
26
+ end
27
+ end
data/tasks/deploy.rake CHANGED
@@ -3,6 +3,12 @@ LOG_RANGE = "master...#{DEV_BRANCH}"
3
3
  VERSION_FILE = 'VERSION'
4
4
  CHANGELOG_FILE = 'CHANGELOG.md'
5
5
 
6
+ desc 'Automated deployment (increment patch)'
7
+ task :deploy do
8
+ bump_version('patch')
9
+ deploy
10
+ end
11
+
6
12
  namespace 'deploy' do
7
13
  desc 'Automated deployment (increment patch)'
8
14
  task :patch do
@@ -25,7 +31,6 @@ def deploy
25
31
  commit_changelog
26
32
  merge_changes
27
33
  push_release
28
- package_and_push_gem
29
34
  end
30
35
 
31
36
  def check_branch
data/tasks/lint.rake CHANGED
@@ -9,7 +9,7 @@ namespace 'lint' do
9
9
 
10
10
  require 'rubocop/rake_task'
11
11
  desc 'Run RuboCop on the lib directory'
12
- Rubocop::RakeTask.new(:rubocop) do |task|
12
+ RuboCop::RakeTask.new(:rubocop) do |task|
13
13
  task.patterns = ['lib/**/*.rb']
14
14
  task.fail_on_error = false
15
15
  end
data/vscripts.gemspec CHANGED
@@ -27,9 +27,11 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'bundler'
28
28
  spec.add_development_dependency 'rack'
29
29
  spec.add_development_dependency 'rack-test'
30
- spec.add_development_dependency 'rspec'
30
+ spec.add_development_dependency 'rspec', '~> 3.0'
31
31
  spec.add_development_dependency 'yard'
32
32
  spec.add_development_dependency 'reek'
33
33
  spec.add_development_dependency 'rubocop'
34
+ spec.add_development_dependency 'coveralls'
34
35
  spec.add_development_dependency 'fpm'
36
+ spec.add_development_dependency 'travis', '~> 1.6.11'
35
37
  end
metadata CHANGED
@@ -1,197 +1,225 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vscripts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vlad Ghinea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-29 00:00:00.000000000 Z
11
+ date: 2014-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: unicorn
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sinatra
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: trollop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rack
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rack-test
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: '3.0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: '3.0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: yard
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - ! '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: reek
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - ! '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - ! '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rubocop
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: coveralls
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
172
186
  - !ruby/object:Gem::Version
173
187
  version: '0'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - ">="
192
+ - - ! '>='
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: fpm
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
- - - ">="
199
+ - - ! '>='
186
200
  - !ruby/object:Gem::Version
187
201
  version: '0'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
- - - ">="
206
+ - - ! '>='
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: travis
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: 1.6.11
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: 1.6.11
195
223
  description: VladGh.com's automation scripts
196
224
  email:
197
225
  - vlad@ghn.me
@@ -200,9 +228,8 @@ executables:
200
228
  extensions: []
201
229
  extra_rdoc_files: []
202
230
  files:
203
- - ".gitignore"
204
- - ".rspec"
205
- - ".travis.yml"
231
+ - .gitignore
232
+ - .travis.yml
206
233
  - CHANGELOG.md
207
234
  - Gemfile
208
235
  - LICENSE
@@ -214,23 +241,25 @@ files:
214
241
  - lib/vscripts/aws.rb
215
242
  - lib/vscripts/aws/ec2.rb
216
243
  - lib/vscripts/aws/metadata.rb
217
- - lib/vscripts/command.rb
218
244
  - lib/vscripts/command_line.rb
245
+ - lib/vscripts/commands.rb
219
246
  - lib/vscripts/commands/identify.rb
220
247
  - lib/vscripts/commands/tags2facts.rb
248
+ - lib/vscripts/util.rb
221
249
  - lib/vscripts/util/local_system.rb
222
250
  - lib/vscripts/version.rb
251
+ - spec/aws_spec_helper.rb
223
252
  - spec/spec_helper.rb
224
- - spec/vscripts/aws/ec2_spec.rb
225
- - spec/vscripts/aws/metadata_spec.rb
226
- - spec/vscripts/aws_spec.rb
227
- - spec/vscripts/command_line_spec.rb
228
- - spec/vscripts/command_spec.rb
229
- - spec/vscripts/commands/identify_spec.rb
230
- - spec/vscripts/commands/tags2facts_spec.rb
231
- - spec/vscripts/util/local_system_spec.rb
232
- - spec/vscripts/version_spec.rb
233
- - spec/vscripts_spec.rb
253
+ - spec/unit/vscripts/aws/ec2_spec.rb
254
+ - spec/unit/vscripts/aws/metadata_spec.rb
255
+ - spec/unit/vscripts/aws_spec.rb
256
+ - spec/unit/vscripts/command_line_spec.rb
257
+ - spec/unit/vscripts/commands/identify_spec.rb
258
+ - spec/unit/vscripts/commands/tags2facts_spec.rb
259
+ - spec/unit/vscripts/commands_spec.rb
260
+ - spec/unit/vscripts/util/local_system_spec.rb
261
+ - spec/unit/vscripts/version_spec.rb
262
+ - spec/unit/vscripts_spec.rb
234
263
  - tasks/deploy.rake
235
264
  - tasks/lint.rake
236
265
  - vscripts.gemspec
@@ -244,12 +273,12 @@ require_paths:
244
273
  - lib
245
274
  required_ruby_version: !ruby/object:Gem::Requirement
246
275
  requirements:
247
- - - ">="
276
+ - - ! '>='
248
277
  - !ruby/object:Gem::Version
249
278
  version: '0'
250
279
  required_rubygems_version: !ruby/object:Gem::Requirement
251
280
  requirements:
252
- - - ">="
281
+ - - ! '>='
253
282
  - !ruby/object:Gem::Version
254
283
  version: '0'
255
284
  requirements: []
@@ -259,15 +288,16 @@ signing_key:
259
288
  specification_version: 4
260
289
  summary: VladGh.com's automation scripts
261
290
  test_files:
291
+ - spec/aws_spec_helper.rb
262
292
  - spec/spec_helper.rb
263
- - spec/vscripts/aws/ec2_spec.rb
264
- - spec/vscripts/aws/metadata_spec.rb
265
- - spec/vscripts/aws_spec.rb
266
- - spec/vscripts/command_line_spec.rb
267
- - spec/vscripts/command_spec.rb
268
- - spec/vscripts/commands/identify_spec.rb
269
- - spec/vscripts/commands/tags2facts_spec.rb
270
- - spec/vscripts/util/local_system_spec.rb
271
- - spec/vscripts/version_spec.rb
272
- - spec/vscripts_spec.rb
293
+ - spec/unit/vscripts/aws/ec2_spec.rb
294
+ - spec/unit/vscripts/aws/metadata_spec.rb
295
+ - spec/unit/vscripts/aws_spec.rb
296
+ - spec/unit/vscripts/command_line_spec.rb
297
+ - spec/unit/vscripts/commands/identify_spec.rb
298
+ - spec/unit/vscripts/commands/tags2facts_spec.rb
299
+ - spec/unit/vscripts/commands_spec.rb
300
+ - spec/unit/vscripts/util/local_system_spec.rb
301
+ - spec/unit/vscripts/version_spec.rb
302
+ - spec/unit/vscripts_spec.rb
273
303
  has_rdoc: