omnibus 6.0.25 → 7.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -3
- data/README.md +25 -9
- data/Rakefile +1 -1
- data/lib/omnibus/build_version_dsl.rb +1 -0
- data/lib/omnibus/builder.rb +10 -7
- data/lib/omnibus/changelog_printer.rb +7 -4
- data/lib/omnibus/cleaner.rb +3 -0
- data/lib/omnibus/cli.rb +1 -1
- data/lib/omnibus/cli/changelog.rb +24 -24
- data/lib/omnibus/cli/publish.rb +5 -5
- data/lib/omnibus/compressor.rb +2 -2
- data/lib/omnibus/compressors/base.rb +1 -1
- data/lib/omnibus/compressors/dmg.rb +45 -7
- data/lib/omnibus/config.rb +12 -2
- data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
- data/lib/omnibus/fetchers/net_fetcher.rb +2 -3
- data/lib/omnibus/file_syncer.rb +2 -2
- data/lib/omnibus/generator.rb +1 -0
- data/lib/omnibus/generator_files/Gemfile.erb +2 -2
- data/lib/omnibus/generator_files/README.md.erb +18 -15
- data/lib/omnibus/generator_files/config/projects/project.rb.erb +0 -3
- data/lib/omnibus/generator_files/config/software/preparation.rb.erb +30 -0
- data/lib/omnibus/generator_files/omnibus.rb.erb +5 -4
- data/lib/omnibus/health_check.rb +1 -1
- data/lib/omnibus/licensing.rb +3 -4
- data/lib/omnibus/logger.rb +2 -1
- data/lib/omnibus/manifest.rb +1 -1
- data/lib/omnibus/metadata.rb +2 -2
- data/lib/omnibus/packagers/appx.rb +1 -2
- data/lib/omnibus/packagers/base.rb +1 -0
- data/lib/omnibus/packagers/bff.rb +6 -8
- data/lib/omnibus/packagers/deb.rb +7 -10
- data/lib/omnibus/packagers/ips.rb +3 -6
- data/lib/omnibus/packagers/makeself.rb +1 -2
- data/lib/omnibus/packagers/msi.rb +12 -11
- data/lib/omnibus/packagers/pkg.rb +125 -9
- data/lib/omnibus/packagers/rpm.rb +13 -12
- data/lib/omnibus/packagers/solaris.rb +4 -4
- data/lib/omnibus/packagers/windows_base.rb +7 -6
- data/lib/omnibus/project.rb +1 -0
- data/lib/omnibus/publisher.rb +14 -12
- data/lib/omnibus/publishers/s3_publisher.rb +6 -4
- data/lib/omnibus/s3_cache.rb +3 -1
- data/lib/omnibus/s3_helpers.rb +6 -6
- data/lib/omnibus/software.rb +66 -30
- data/lib/omnibus/templating.rb +1 -1
- data/lib/omnibus/util.rb +3 -2
- data/lib/omnibus/version.rb +1 -1
- data/lib/omnibus/whitelist.rb +6 -1
- data/omnibus.gemspec +7 -6
- data/resources/rpm/signing.erb +7 -10
- data/spec/functional/builder_spec.rb +2 -1
- data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
- data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
- data/spec/functional/file_syncer_spec.rb +42 -0
- data/spec/functional/licensing_spec.rb +5 -5
- data/spec/spec_helper.rb +6 -0
- data/spec/support/examples.rb +3 -4
- data/spec/unit/builder_spec.rb +9 -9
- data/spec/unit/changelogprinter_spec.rb +8 -6
- data/spec/unit/compressor_spec.rb +3 -3
- data/spec/unit/compressors/dmg_spec.rb +43 -4
- data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
- data/spec/unit/generator_spec.rb +1 -0
- data/spec/unit/health_check_spec.rb +2 -6
- data/spec/unit/library_spec.rb +2 -1
- data/spec/unit/manifest_diff_spec.rb +2 -2
- data/spec/unit/manifest_spec.rb +1 -1
- data/spec/unit/metadata_spec.rb +9 -11
- data/spec/unit/omnibus_spec.rb +1 -1
- data/spec/unit/packagers/bff_spec.rb +2 -2
- data/spec/unit/packagers/msi_spec.rb +2 -2
- data/spec/unit/packagers/pkg_spec.rb +354 -0
- data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
- data/spec/unit/packagers/solaris_spec.rb +7 -7
- data/spec/unit/project_spec.rb +2 -2
- data/spec/unit/publisher_spec.rb +8 -9
- data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
- data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
- data/spec/unit/s3_cacher_spec.rb +19 -6
- data/spec/unit/s3_helpers_spec.rb +22 -3
- data/spec/unit/software_spec.rb +72 -42
- data/spec/unit/util_spec.rb +1 -2
- metadata +32 -11
@@ -13,10 +13,10 @@ module Omnibus
|
|
13
13
|
|
14
14
|
let(:manifest_entry) do
|
15
15
|
double(Omnibus::ManifestEntry,
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
name: "pathelogical",
|
17
|
+
locked_version: nil,
|
18
|
+
described_version: nil,
|
19
|
+
locked_source: source)
|
20
20
|
end
|
21
21
|
|
22
22
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
@@ -110,10 +110,10 @@ module Omnibus
|
|
110
110
|
let(:remote) { remote_git_repo("zlib", annotated_tags: [version]) }
|
111
111
|
let(:manifest_entry) do
|
112
112
|
double(ManifestEntry,
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
113
|
+
name: "software",
|
114
|
+
locked_version: "efde208366abd0f91419d8a54b45e3f6e0540105",
|
115
|
+
described_version: version,
|
116
|
+
locked_source: source)
|
117
117
|
end
|
118
118
|
|
119
119
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
@@ -4,8 +4,7 @@ module Omnibus
|
|
4
4
|
module RSpec
|
5
5
|
module OhaiHelpers
|
6
6
|
# Turn off the mandatory Ohai helper.
|
7
|
-
def stub_ohai(options = {}, &block)
|
8
|
-
end
|
7
|
+
def stub_ohai(options = {}, &block); end
|
9
8
|
end
|
10
9
|
end
|
11
10
|
|
@@ -29,10 +28,10 @@ module Omnibus
|
|
29
28
|
|
30
29
|
let(:manifest_entry) do
|
31
30
|
double(ManifestEntry,
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
name: "software",
|
32
|
+
locked_version: "1.2.8",
|
33
|
+
described_version: "1.2.8",
|
34
|
+
locked_source: source)
|
36
35
|
end
|
37
36
|
|
38
37
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
@@ -12,10 +12,10 @@ module Omnibus
|
|
12
12
|
|
13
13
|
let(:manifest_entry) do
|
14
14
|
double(Omnibus::ManifestEntry,
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
name: "pathelogical",
|
16
|
+
locked_version: nil,
|
17
|
+
described_version: nil,
|
18
|
+
locked_source: source)
|
19
19
|
end
|
20
20
|
|
21
21
|
before do
|
@@ -56,6 +56,14 @@ module Omnibus
|
|
56
56
|
FileUtils.touch(File.join(source, ".dot_folder", "file_f"))
|
57
57
|
|
58
58
|
FileUtils.touch(File.join(source, ".file_g"))
|
59
|
+
|
60
|
+
FileUtils.mkdir_p(File.join(source, "nested", "deep", "folder"))
|
61
|
+
FileUtils.touch(File.join(source, "nested", "deep", "folder", "file_h"))
|
62
|
+
FileUtils.touch(File.join(source, "nested", "deep", "folder", "file_i"))
|
63
|
+
|
64
|
+
FileUtils.mkdir_p(File.join(source, "nested", "deep", "deep", "folder"))
|
65
|
+
FileUtils.touch(File.join(source, "nested", "deep", "deep", "folder", "file_j"))
|
66
|
+
FileUtils.touch(File.join(source, "nested", "deep", "deep", "folder", "file_k"))
|
59
67
|
source
|
60
68
|
end
|
61
69
|
|
@@ -233,6 +241,40 @@ module Omnibus
|
|
233
241
|
expect("#{destination}/.file_g").to be_a_file
|
234
242
|
end
|
235
243
|
|
244
|
+
it "does not copy files and folders that match the wildcard pattern" do
|
245
|
+
described_class.sync(source, destination, exclude: "nested/*/folder")
|
246
|
+
|
247
|
+
expect("#{destination}/file_a").to be_a_file
|
248
|
+
expect("#{destination}/file_b").to be_a_file
|
249
|
+
expect("#{destination}/file_c").to be_a_file
|
250
|
+
expect("#{destination}/folder/file_d").to be_a_file
|
251
|
+
expect("#{destination}/folder/file_e").to be_a_file
|
252
|
+
expect("#{destination}/.dot_folder").to be_a_directory
|
253
|
+
expect("#{destination}/.dot_folder/file_f").to be_a_file
|
254
|
+
expect("#{destination}/.file_g").to be_a_file
|
255
|
+
expect("#{destination}/nested/deep/folder/file_h").to_not be_a_file
|
256
|
+
expect("#{destination}/nested/deep/folder/file_i").to_not be_a_file
|
257
|
+
expect("#{destination}/nested/deep/deep/folder/file_j").to be_a_file
|
258
|
+
expect("#{destination}/nested/deep/deep/folder/file_k").to be_a_file
|
259
|
+
end
|
260
|
+
|
261
|
+
it "does not copy files and folders that match the super wildcard pattern" do
|
262
|
+
described_class.sync(source, destination, exclude: "nested/**/folder")
|
263
|
+
|
264
|
+
expect("#{destination}/file_a").to be_a_file
|
265
|
+
expect("#{destination}/file_b").to be_a_file
|
266
|
+
expect("#{destination}/file_c").to be_a_file
|
267
|
+
expect("#{destination}/folder/file_d").to be_a_file
|
268
|
+
expect("#{destination}/folder/file_e").to be_a_file
|
269
|
+
expect("#{destination}/.dot_folder").to be_a_directory
|
270
|
+
expect("#{destination}/.dot_folder/file_f").to be_a_file
|
271
|
+
expect("#{destination}/.file_g").to be_a_file
|
272
|
+
expect("#{destination}/nested/deep/folder/file_h").to_not be_a_file
|
273
|
+
expect("#{destination}/nested/deep/folder/file_i").to_not be_a_file
|
274
|
+
expect("#{destination}/nested/deep/deep/folder/file_j").to_not be_a_file
|
275
|
+
expect("#{destination}/nested/deep/deep/folder/file_k").to_not be_a_file
|
276
|
+
end
|
277
|
+
|
236
278
|
it "removes existing files and folders in destination" do
|
237
279
|
FileUtils.mkdir_p("#{destination}/existing_folder")
|
238
280
|
FileUtils.touch("#{destination}/existing_file")
|
@@ -37,14 +37,14 @@ module Omnibus
|
|
37
37
|
expect(project_license).to match /This product bundles private_code 1.7.2,\nwhich is available under a "Unspecified"/
|
38
38
|
expect(project_license).to match /This product bundles snoopy 1.0.0,\nwhich is available under a "GPL v2"/
|
39
39
|
expect(project_license).not_to match /preparation/
|
40
|
-
expect(project_license).to match /
|
41
|
-
expect(project_license).to match /
|
40
|
+
expect(project_license).to match %r{LICENSES/snoopy-artistic.html}
|
41
|
+
expect(project_license).to match %r{LICENSES/snoopy-NOTICE}
|
42
42
|
if zlib_version_override
|
43
43
|
expect(project_license).to match /This product bundles zlib 1.8.0,\nwhich is available under a "Apache-2.0"/
|
44
|
-
expect(project_license).to match /
|
44
|
+
expect(project_license).to match %r{LICENSES/zlib-APACHE}
|
45
45
|
else
|
46
46
|
expect(project_license).to match /This product bundles zlib 1.7.2,\nwhich is available under a "Zlib"/
|
47
|
-
expect(project_license).to match /
|
47
|
+
expect(project_license).to match %r{LICENSES/zlib-LICENSE}
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -263,7 +263,7 @@ module Omnibus
|
|
263
263
|
it "should log a warning for the missing file" do
|
264
264
|
output = capture_logging { create_licenses }
|
265
265
|
expect(output).to match(/Retrying failed download/)
|
266
|
-
expect(output).to match(
|
266
|
+
expect(output).to match(%r{Can not download license file 'https://downloads.chef.io/LICENSE' for software 'problematic'.})
|
267
267
|
end
|
268
268
|
end
|
269
269
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
Encoding.default_external = Encoding::UTF_8
|
2
|
+
|
1
3
|
require "rspec"
|
2
4
|
require "rspec/its"
|
3
5
|
require "rspec/json_expectations"
|
@@ -16,6 +18,10 @@ def mac?
|
|
16
18
|
end
|
17
19
|
|
18
20
|
RSpec.configure do |config|
|
21
|
+
config.expect_with :rspec do |c|
|
22
|
+
c.max_formatted_output_length = 1000
|
23
|
+
end
|
24
|
+
|
19
25
|
# Custom matchers and shared examples
|
20
26
|
require_relative "support/examples"
|
21
27
|
require_relative "support/matchers"
|
data/spec/support/examples.rb
CHANGED
@@ -27,8 +27,7 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
|
|
27
27
|
install_dir: install_dir,
|
28
28
|
project_dir: project_dir,
|
29
29
|
source: source,
|
30
|
-
overridden?: false
|
31
|
-
)
|
30
|
+
overridden?: false)
|
32
31
|
end
|
33
32
|
|
34
33
|
before do
|
@@ -56,12 +55,12 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
|
|
56
55
|
FileUtils.mkdir_p(embedded_bin_dir)
|
57
56
|
|
58
57
|
allow(software).to receive(:with_embedded_path).and_return(
|
59
|
-
"PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV[
|
58
|
+
"PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV["PATH"]}"
|
60
59
|
)
|
61
60
|
|
62
61
|
allow(software).to receive(:embedded_bin) do |binary|
|
63
62
|
p = File.join(embedded_bin_dir, binary)
|
64
|
-
p.gsub!(
|
63
|
+
p.gsub!(%r{/}, '\\') if windows?
|
65
64
|
p
|
66
65
|
end
|
67
66
|
end
|
data/spec/unit/builder_spec.rb
CHANGED
@@ -6,8 +6,7 @@ module Omnibus
|
|
6
6
|
double(Software,
|
7
7
|
name: "chefdk",
|
8
8
|
install_dir: project_dir,
|
9
|
-
project_dir: project_dir
|
10
|
-
)
|
9
|
+
project_dir: project_dir)
|
11
10
|
end
|
12
11
|
|
13
12
|
let(:project_dir) { on_windows ? "C:/opscode/chefdk" : "/opt/chefdk" }
|
@@ -238,7 +237,7 @@ module Omnibus
|
|
238
237
|
it "appends platform host to the options" do
|
239
238
|
expect(subject).to receive(:command)
|
240
239
|
.with("./configure --build=x86_64-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
|
241
|
-
subject.configure
|
240
|
+
subject.configure
|
242
241
|
end
|
243
242
|
end
|
244
243
|
|
@@ -254,7 +253,7 @@ module Omnibus
|
|
254
253
|
it "appends platform host to the options" do
|
255
254
|
expect(subject).to receive(:command)
|
256
255
|
.with("./configure --build=i686-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
|
257
|
-
subject.configure
|
256
|
+
subject.configure
|
258
257
|
end
|
259
258
|
end
|
260
259
|
|
@@ -305,7 +304,8 @@ module Omnibus
|
|
305
304
|
.with("config/patches", "good_patch")
|
306
305
|
.and_return(
|
307
306
|
[ ["#{project_dir}/patch_location1/good_patch", "#{project_dir}/patch_location2/good_patch"],
|
308
|
-
"#{project_dir}/patch_location2/good_patch" ]
|
307
|
+
"#{project_dir}/patch_location2/good_patch" ]
|
308
|
+
)
|
309
309
|
end
|
310
310
|
|
311
311
|
it "is a DSL method" do
|
@@ -355,10 +355,10 @@ module Omnibus
|
|
355
355
|
|
356
356
|
let(:software) do
|
357
357
|
double(Software,
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
358
|
+
name: "chefdk",
|
359
|
+
install_dir: tmp_dir,
|
360
|
+
project_dir: tmp_dir,
|
361
|
+
overridden?: false)
|
362
362
|
end
|
363
363
|
|
364
364
|
let(:before_build_shasum) do
|
@@ -16,16 +16,18 @@ module Omnibus
|
|
16
16
|
|
17
17
|
let(:changelog) do
|
18
18
|
double(ChangeLog,
|
19
|
-
|
20
|
-
|
19
|
+
changelog_entries: %w{entry1 entry2},
|
20
|
+
authors: %w{alice bob})
|
21
|
+
end
|
21
22
|
let(:git_changelog) do
|
22
23
|
double(ChangeLog,
|
23
|
-
|
24
|
-
|
24
|
+
changelog_entries:
|
25
|
+
%w{sub-entry1 sub-entry2})
|
26
|
+
end
|
25
27
|
let(:now) { double(Time) }
|
26
28
|
let(:emptydiff) { EmptyManifestDiff.new }
|
27
29
|
let(:old_manifest) do
|
28
|
-
m = Manifest.new
|
30
|
+
m = Manifest.new
|
29
31
|
m.add("updated-comp", manifest_entry_for("updated-comp", "v9", "v9"))
|
30
32
|
m.add("updated-comp-2", manifest_entry_for("updated-comp-2", "someref0", "someref0", :git))
|
31
33
|
m.add("removed-comp", manifest_entry_for("removed-comp", "v9", "v9"))
|
@@ -33,7 +35,7 @@ module Omnibus
|
|
33
35
|
m
|
34
36
|
end
|
35
37
|
let(:new_manifest) do
|
36
|
-
m = Manifest.new
|
38
|
+
m = Manifest.new
|
37
39
|
m.add("updated-comp", manifest_entry_for("updated-comp", "v10", "v10"))
|
38
40
|
m.add("updated-comp-2", manifest_entry_for("updated-comp-2", "someotherref", "someotherref", :git))
|
39
41
|
m.add("added-comp", manifest_entry_for("added-comp", "v100", "v100"))
|
@@ -8,13 +8,13 @@ module Omnibus
|
|
8
8
|
|
9
9
|
context "when :dmg is activated" do
|
10
10
|
it "prefers dmg" do
|
11
|
-
expect(described_class.for_current_system(
|
11
|
+
expect(described_class.for_current_system(%i{tgz dmg})).to eq(Compressor::DMG)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
context "when :dmg is not activated" do
|
16
16
|
it "prefers tgz" do
|
17
|
-
expect(described_class.for_current_system(
|
17
|
+
expect(described_class.for_current_system(%i{tgz foo})).to eq(Compressor::TGZ)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -30,7 +30,7 @@ module Omnibus
|
|
30
30
|
|
31
31
|
context "when :tgz activated" do
|
32
32
|
it "prefers tgz" do
|
33
|
-
expect(described_class.for_current_system(
|
33
|
+
expect(described_class.for_current_system(%i{tgz foo})).to eq(Compressor::TGZ)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -90,7 +90,8 @@ module Omnibus
|
|
90
90
|
-fs HFS+ \\
|
91
91
|
-fsargs "-c c=64,a=16,e=16" \\
|
92
92
|
-size 512000k \\
|
93
|
-
"#{staging_dir}/project-writable.dmg"
|
93
|
+
"#{staging_dir}/project-writable.dmg" \\
|
94
|
+
-puppetstrings
|
94
95
|
EOH
|
95
96
|
|
96
97
|
subject.create_writable_dmg
|
@@ -114,6 +115,7 @@ module Omnibus
|
|
114
115
|
expect(subject).to receive(:shellout!)
|
115
116
|
.with <<-EOH.gsub(/^ {12}/, "")
|
116
117
|
hdiutil attach \\
|
118
|
+
-puppetstrings \\
|
117
119
|
-readwrite \\
|
118
120
|
-noverify \\
|
119
121
|
-noautoopen \\
|
@@ -215,20 +217,57 @@ module Omnibus
|
|
215
217
|
.with <<-EOH.gsub(/^ {12}/, "")
|
216
218
|
chmod -Rf go-w "/Volumes/Project One"
|
217
219
|
sync
|
218
|
-
hdiutil
|
220
|
+
hdiutil unmount "#{device}"
|
221
|
+
# Give some time to the system so unmount dmg
|
222
|
+
sleep 5
|
223
|
+
hdiutil detach "#{device}" &&\
|
219
224
|
hdiutil convert \\
|
220
225
|
"#{staging_dir}/project-writable.dmg" \\
|
221
226
|
-format UDZO \\
|
222
227
|
-imagekey \\
|
223
228
|
zlib-level=9 \\
|
224
|
-
-o "#{package_dir}/project-1.2.3-2.dmg"
|
225
|
-
|
229
|
+
-o "#{package_dir}/project-1.2.3-2.dmg" \\
|
230
|
+
-puppetstrings
|
226
231
|
EOH
|
227
232
|
|
228
233
|
subject.compress_dmg
|
229
234
|
end
|
230
235
|
end
|
231
236
|
|
237
|
+
describe "#verify_dmg" do
|
238
|
+
it "logs a message" do
|
239
|
+
output = capture_logging { subject.verify_dmg }
|
240
|
+
expect(output).to include("Verifying dmg")
|
241
|
+
end
|
242
|
+
|
243
|
+
it "runs the command" do
|
244
|
+
expect(subject).to receive(:shellout!)
|
245
|
+
.with <<-EOH.gsub(/^ {12}/, "")
|
246
|
+
hdiutil verify \\
|
247
|
+
"#{package_dir}/project-1.2.3-2.dmg" \\
|
248
|
+
-puppetstrings
|
249
|
+
EOH
|
250
|
+
|
251
|
+
subject.verify_dmg
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
describe "#remove_writable_dmg" do
|
256
|
+
it "logs a message" do
|
257
|
+
output = capture_logging { subject.remove_writable_dmg }
|
258
|
+
expect(output).to include("Removing writable dmg")
|
259
|
+
end
|
260
|
+
|
261
|
+
it "runs the command" do
|
262
|
+
expect(subject).to receive(:shellout!)
|
263
|
+
.with <<-EOH.gsub(/^ {12}/, "")
|
264
|
+
rm -rf "#{staging_dir}/project-writable.dmg"
|
265
|
+
EOH
|
266
|
+
|
267
|
+
subject.remove_writable_dmg
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
232
271
|
describe "#set_dmg_icon" do
|
233
272
|
it "logs a message" do
|
234
273
|
output = capture_logging { subject.set_dmg_icon }
|
@@ -11,10 +11,10 @@ module Omnibus
|
|
11
11
|
|
12
12
|
let(:manifest_entry) do
|
13
13
|
double(Omnibus::ManifestEntry,
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
name: "file",
|
15
|
+
locked_version: "1.2.3",
|
16
|
+
described_version: "1.2.3",
|
17
|
+
locked_source: source)
|
18
18
|
end
|
19
19
|
|
20
20
|
let(:cache_dir) { "/cache" }
|
@@ -331,11 +331,10 @@ module Omnibus
|
|
331
331
|
context "when the file is a .#{extension}" do
|
332
332
|
let(:manifest_entry) do
|
333
333
|
double(Omnibus::ManifestEntry,
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
)
|
334
|
+
name: "file",
|
335
|
+
locked_version: "1.2.3",
|
336
|
+
described_version: "1.2.3",
|
337
|
+
locked_source: { url: "https://get.example.com/file.#{extension}", md5: "abcd1234" }.merge(source_options))
|
339
338
|
end
|
340
339
|
|
341
340
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
@@ -361,10 +360,10 @@ module Omnibus
|
|
361
360
|
context "when the downloaded file is a folder" do
|
362
361
|
let(:manifest_entry) do
|
363
362
|
double(Omnibus::ManifestEntry,
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
363
|
+
name: "file",
|
364
|
+
locked_version: "1.2.3",
|
365
|
+
described_version: "1.2.3",
|
366
|
+
locked_source: { url: "https://get.example.com/folder", md5: "abcd1234" })
|
368
367
|
end
|
369
368
|
|
370
369
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
@@ -382,10 +381,10 @@ module Omnibus
|
|
382
381
|
context "when the downloaded file is a regular file" do
|
383
382
|
let(:manifest_entry) do
|
384
383
|
double(Omnibus::ManifestEntry,
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
384
|
+
name: "file",
|
385
|
+
locked_version: "1.2.3",
|
386
|
+
described_version: "1.2.3",
|
387
|
+
locked_source: { url: "https://get.example.com/file", md5: "abcd1234" })
|
389
388
|
end
|
390
389
|
|
391
390
|
subject { described_class.new(manifest_entry, project_dir, build_dir) }
|
data/spec/unit/generator_spec.rb
CHANGED
@@ -36,6 +36,7 @@ module Omnibus
|
|
36
36
|
omnibus-name/config/projects/name.rb
|
37
37
|
omnibus-name/config/software
|
38
38
|
omnibus-name/config/software/name-zlib.rb
|
39
|
+
omnibus-name/config/software/preparation.rb
|
39
40
|
omnibus-name/omnibus.rb
|
40
41
|
omnibus-name/package-scripts
|
41
42
|
omnibus-name/package-scripts/name
|