omnibus 1.0.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.
Files changed (62) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +1 -0
  4. data/.yardopts +7 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +9 -0
  7. data/LICENSE +201 -0
  8. data/NOTICE +9 -0
  9. data/README.md +186 -0
  10. data/Rakefile +7 -0
  11. data/bin/makeself-header.sh +401 -0
  12. data/bin/makeself.sh +407 -0
  13. data/bin/omnibus +11 -0
  14. data/lib/omnibus.rb +280 -0
  15. data/lib/omnibus/build_version.rb +281 -0
  16. data/lib/omnibus/builder.rb +323 -0
  17. data/lib/omnibus/clean_tasks.rb +30 -0
  18. data/lib/omnibus/cli.rb +35 -0
  19. data/lib/omnibus/cli/application.rb +136 -0
  20. data/lib/omnibus/cli/base.rb +112 -0
  21. data/lib/omnibus/cli/build.rb +66 -0
  22. data/lib/omnibus/cli/cache.rb +60 -0
  23. data/lib/omnibus/config.rb +186 -0
  24. data/lib/omnibus/exceptions.rb +54 -0
  25. data/lib/omnibus/fetcher.rb +184 -0
  26. data/lib/omnibus/fetchers.rb +22 -0
  27. data/lib/omnibus/fetchers/git_fetcher.rb +212 -0
  28. data/lib/omnibus/fetchers/net_fetcher.rb +191 -0
  29. data/lib/omnibus/fetchers/path_fetcher.rb +65 -0
  30. data/lib/omnibus/fetchers/s3_cache_fetcher.rb +42 -0
  31. data/lib/omnibus/health_check.rb +260 -0
  32. data/lib/omnibus/library.rb +70 -0
  33. data/lib/omnibus/overrides.rb +69 -0
  34. data/lib/omnibus/project.rb +566 -0
  35. data/lib/omnibus/reports.rb +99 -0
  36. data/lib/omnibus/s3_cacher.rb +136 -0
  37. data/lib/omnibus/software.rb +430 -0
  38. data/lib/omnibus/templates/Berksfile.erb +3 -0
  39. data/lib/omnibus/templates/Gemfile.erb +4 -0
  40. data/lib/omnibus/templates/README.md.erb +102 -0
  41. data/lib/omnibus/templates/Vagrantfile.erb +95 -0
  42. data/lib/omnibus/templates/gitignore.erb +8 -0
  43. data/lib/omnibus/templates/omnibus.rb.example.erb +5 -0
  44. data/lib/omnibus/templates/package_scripts/makeselfinst.erb +27 -0
  45. data/lib/omnibus/templates/package_scripts/postinst.erb +17 -0
  46. data/lib/omnibus/templates/package_scripts/postrm.erb +9 -0
  47. data/lib/omnibus/templates/project.rb.erb +21 -0
  48. data/lib/omnibus/templates/software/c-example.rb.erb +42 -0
  49. data/lib/omnibus/templates/software/erlang-example.rb.erb +38 -0
  50. data/lib/omnibus/templates/software/ruby-example.rb.erb +24 -0
  51. data/lib/omnibus/util.rb +61 -0
  52. data/lib/omnibus/version.rb +20 -0
  53. data/omnibus.gemspec +34 -0
  54. data/spec/build_version_spec.rb +228 -0
  55. data/spec/data/overrides/bad_line.overrides +3 -0
  56. data/spec/data/overrides/good.overrides +5 -0
  57. data/spec/data/overrides/with_dupes.overrides +4 -0
  58. data/spec/data/software/erchef.rb +40 -0
  59. data/spec/overrides_spec.rb +114 -0
  60. data/spec/software_spec.rb +71 -0
  61. data/spec/spec_helper.rb +28 -0
  62. metadata +239 -0
@@ -0,0 +1,71 @@
1
+ require 'rake/dsl_definition'
2
+ require 'omnibus/software'
3
+
4
+ require 'spec_helper'
5
+
6
+ describe Omnibus::Software do
7
+
8
+ let(:project) do
9
+ p = mock(Omnibus::Project)
10
+ p.should_receive(:install_path).any_number_of_times.and_return("monkeys")
11
+ p
12
+ end
13
+
14
+ let(:software_name) {"erchef"}
15
+ let(:software_file){ software_path(software_name) }
16
+ let(:version_from_file){"4b19a96d57bff9bbf4764d7323b92a0944009b9e"}
17
+
18
+ context "testing version overrides" do
19
+
20
+ before :each do
21
+ # We don't want to mess with any of this stuff for these
22
+ # tests... we're just looking at version info right now
23
+ Omnibus::Software.any_instance.stub(:render_tasks)
24
+ end
25
+
26
+ subject{software}
27
+
28
+ context "without overrides" do
29
+ let(:software){Omnibus::Software.load(software_file, project)}
30
+
31
+ its(:name){should eq(software_name)}
32
+ its(:version){should eq(version_from_file)}
33
+ its(:given_version){should eq(software.version)}
34
+ its(:override_version){should be_nil}
35
+ end
36
+
37
+ context "with overrides" do
38
+ let(:override_software_version){"6.6.6"}
39
+ let(:overrides) do
40
+ {override_software_name => override_software_version}
41
+ end
42
+ let(:software){Omnibus::Software.load(software_file, project, overrides)}
43
+
44
+ context "but not for this software" do
45
+ let(:override_software_name){"chaos_monkey"}
46
+
47
+ it "really should not have any overrides for this software" do
48
+ overrides.should_not have_key(software_name)
49
+ end
50
+
51
+ its(:version){should eq(version_from_file)}
52
+ its(:given_version){should eq(software.version)}
53
+ its(:override_version){should be_nil}
54
+ end
55
+
56
+ context "for this software" do
57
+ let(:override_software_name){software_name}
58
+
59
+ it "really should have an override for this software" do
60
+ overrides.should have_key(software_name)
61
+ end
62
+
63
+ its(:version){should eq(override_software_version)}
64
+ its(:override_version){should eq(software.version)}
65
+ its(:version){should_not eq(software.given_version)}
66
+ its(:given_version){should eq(version_from_file)}
67
+ end
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,28 @@
1
+ # Why isn't this already required in omnibus?
2
+ require 'rake/dsl_definition'
3
+
4
+ require 'omnibus'
5
+
6
+ module Omnibus
7
+ module RSpec
8
+
9
+ SPEC_DATA = File.expand_path(File.join(File.dirname(__FILE__), "data"))
10
+
11
+ def software_path(name)
12
+ File.join(SPEC_DATA, "software", "#{name}.rb")
13
+ end
14
+
15
+ def overrides_path(name)
16
+ File.join(SPEC_DATA, "overrides", "#{name}.overrides")
17
+ end
18
+
19
+ end
20
+ end
21
+
22
+ RSpec.configure do |config|
23
+ config.include Omnibus::RSpec
24
+ config.filter_run :focus => true
25
+ config.run_all_when_everything_filtered = true
26
+ config.treat_symbols_as_metadata_keys_with_true_values = true
27
+ end
28
+
metadata ADDED
@@ -0,0 +1,239 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omnibus
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Opscode
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mixlib-shellout
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mixlib-config
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: ohai
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.6.12
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.6.12
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: fpm
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.11
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.11
83
+ - !ruby/object:Gem::Dependency
84
+ name: uber-s3
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: thor
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.16.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.16.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
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: rspec_junit_formatter
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: Omnibus helps you build self-installing, full-stack software builds.
140
+ email: info@opscode.com
141
+ executables:
142
+ - omnibus
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - .gitignore
147
+ - .rspec
148
+ - .yardopts
149
+ - CHANGELOG.md
150
+ - Gemfile
151
+ - LICENSE
152
+ - NOTICE
153
+ - README.md
154
+ - Rakefile
155
+ - bin/makeself-header.sh
156
+ - bin/makeself.sh
157
+ - bin/omnibus
158
+ - lib/omnibus.rb
159
+ - lib/omnibus/build_version.rb
160
+ - lib/omnibus/builder.rb
161
+ - lib/omnibus/clean_tasks.rb
162
+ - lib/omnibus/cli.rb
163
+ - lib/omnibus/cli/application.rb
164
+ - lib/omnibus/cli/base.rb
165
+ - lib/omnibus/cli/build.rb
166
+ - lib/omnibus/cli/cache.rb
167
+ - lib/omnibus/config.rb
168
+ - lib/omnibus/exceptions.rb
169
+ - lib/omnibus/fetcher.rb
170
+ - lib/omnibus/fetchers.rb
171
+ - lib/omnibus/fetchers/git_fetcher.rb
172
+ - lib/omnibus/fetchers/net_fetcher.rb
173
+ - lib/omnibus/fetchers/path_fetcher.rb
174
+ - lib/omnibus/fetchers/s3_cache_fetcher.rb
175
+ - lib/omnibus/health_check.rb
176
+ - lib/omnibus/library.rb
177
+ - lib/omnibus/overrides.rb
178
+ - lib/omnibus/project.rb
179
+ - lib/omnibus/reports.rb
180
+ - lib/omnibus/s3_cacher.rb
181
+ - lib/omnibus/software.rb
182
+ - lib/omnibus/templates/Berksfile.erb
183
+ - lib/omnibus/templates/Gemfile.erb
184
+ - lib/omnibus/templates/README.md.erb
185
+ - lib/omnibus/templates/Vagrantfile.erb
186
+ - lib/omnibus/templates/gitignore.erb
187
+ - lib/omnibus/templates/omnibus.rb.example.erb
188
+ - lib/omnibus/templates/package_scripts/makeselfinst.erb
189
+ - lib/omnibus/templates/package_scripts/postinst.erb
190
+ - lib/omnibus/templates/package_scripts/postrm.erb
191
+ - lib/omnibus/templates/project.rb.erb
192
+ - lib/omnibus/templates/software/c-example.rb.erb
193
+ - lib/omnibus/templates/software/erlang-example.rb.erb
194
+ - lib/omnibus/templates/software/ruby-example.rb.erb
195
+ - lib/omnibus/util.rb
196
+ - lib/omnibus/version.rb
197
+ - omnibus.gemspec
198
+ - spec/build_version_spec.rb
199
+ - spec/data/overrides/bad_line.overrides
200
+ - spec/data/overrides/good.overrides
201
+ - spec/data/overrides/with_dupes.overrides
202
+ - spec/data/software/erchef.rb
203
+ - spec/overrides_spec.rb
204
+ - spec/software_spec.rb
205
+ - spec/spec_helper.rb
206
+ homepage: https://github.com/opscode/opscode-ruby
207
+ licenses:
208
+ - Apache 2.0
209
+ metadata: {}
210
+ post_install_message:
211
+ rdoc_options: []
212
+ require_paths:
213
+ - lib
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ! '>='
217
+ - !ruby/object:Gem::Version
218
+ version: 1.9.1
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ! '>='
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ requirements: []
225
+ rubyforge_project:
226
+ rubygems_version: 2.0.3
227
+ signing_key:
228
+ specification_version: 4
229
+ summary: Omnibus helps you build self-installing, full-stack software builds.
230
+ test_files:
231
+ - spec/build_version_spec.rb
232
+ - spec/data/overrides/bad_line.overrides
233
+ - spec/data/overrides/good.overrides
234
+ - spec/data/overrides/with_dupes.overrides
235
+ - spec/data/software/erchef.rb
236
+ - spec/overrides_spec.rb
237
+ - spec/software_spec.rb
238
+ - spec/spec_helper.rb
239
+ has_rdoc: