omnibus 6.0.30 → 7.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/README.md +24 -8
  4. data/Rakefile +1 -1
  5. data/lib/omnibus/build_version_dsl.rb +1 -0
  6. data/lib/omnibus/builder.rb +6 -5
  7. data/lib/omnibus/changelog_printer.rb +7 -4
  8. data/lib/omnibus/cleaner.rb +3 -0
  9. data/lib/omnibus/cli.rb +1 -1
  10. data/lib/omnibus/cli/changelog.rb +24 -24
  11. data/lib/omnibus/cli/publish.rb +5 -5
  12. data/lib/omnibus/compressor.rb +2 -2
  13. data/lib/omnibus/compressors/base.rb +1 -1
  14. data/lib/omnibus/compressors/dmg.rb +45 -7
  15. data/lib/omnibus/config.rb +12 -2
  16. data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
  17. data/lib/omnibus/fetchers/net_fetcher.rb +2 -3
  18. data/lib/omnibus/file_syncer.rb +2 -2
  19. data/lib/omnibus/generator_files/README.md.erb +18 -15
  20. data/lib/omnibus/generator_files/config/software/preparation.rb.erb +1 -1
  21. data/lib/omnibus/generator_files/omnibus.rb.erb +5 -4
  22. data/lib/omnibus/health_check.rb +1 -1
  23. data/lib/omnibus/licensing.rb +3 -4
  24. data/lib/omnibus/logger.rb +2 -1
  25. data/lib/omnibus/manifest.rb +1 -1
  26. data/lib/omnibus/metadata.rb +2 -2
  27. data/lib/omnibus/packagers/appx.rb +1 -2
  28. data/lib/omnibus/packagers/base.rb +1 -0
  29. data/lib/omnibus/packagers/bff.rb +6 -8
  30. data/lib/omnibus/packagers/deb.rb +7 -10
  31. data/lib/omnibus/packagers/ips.rb +3 -6
  32. data/lib/omnibus/packagers/makeself.rb +1 -2
  33. data/lib/omnibus/packagers/msi.rb +12 -11
  34. data/lib/omnibus/packagers/pkg.rb +125 -9
  35. data/lib/omnibus/packagers/rpm.rb +11 -12
  36. data/lib/omnibus/packagers/solaris.rb +4 -4
  37. data/lib/omnibus/packagers/windows_base.rb +7 -6
  38. data/lib/omnibus/project.rb +1 -0
  39. data/lib/omnibus/publisher.rb +14 -12
  40. data/lib/omnibus/publishers/s3_publisher.rb +6 -4
  41. data/lib/omnibus/s3_cache.rb +3 -1
  42. data/lib/omnibus/s3_helpers.rb +6 -6
  43. data/lib/omnibus/software.rb +66 -30
  44. data/lib/omnibus/templating.rb +1 -1
  45. data/lib/omnibus/util.rb +3 -2
  46. data/lib/omnibus/version.rb +1 -1
  47. data/lib/omnibus/whitelist.rb +6 -1
  48. data/omnibus.gemspec +6 -6
  49. data/resources/rpm/signing.erb +7 -10
  50. data/spec/functional/builder_spec.rb +2 -1
  51. data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
  52. data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
  53. data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
  54. data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
  55. data/spec/functional/file_syncer_spec.rb +42 -0
  56. data/spec/functional/licensing_spec.rb +5 -5
  57. data/spec/support/examples.rb +3 -4
  58. data/spec/unit/builder_spec.rb +9 -9
  59. data/spec/unit/changelogprinter_spec.rb +8 -6
  60. data/spec/unit/compressor_spec.rb +3 -3
  61. data/spec/unit/compressors/dmg_spec.rb +43 -4
  62. data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
  63. data/spec/unit/health_check_spec.rb +2 -6
  64. data/spec/unit/library_spec.rb +2 -1
  65. data/spec/unit/manifest_diff_spec.rb +2 -2
  66. data/spec/unit/manifest_spec.rb +1 -1
  67. data/spec/unit/metadata_spec.rb +9 -11
  68. data/spec/unit/omnibus_spec.rb +1 -1
  69. data/spec/unit/packagers/bff_spec.rb +2 -2
  70. data/spec/unit/packagers/msi_spec.rb +2 -2
  71. data/spec/unit/packagers/pkg_spec.rb +354 -0
  72. data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
  73. data/spec/unit/packagers/solaris_spec.rb +7 -7
  74. data/spec/unit/project_spec.rb +2 -2
  75. data/spec/unit/publisher_spec.rb +8 -9
  76. data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
  77. data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
  78. data/spec/unit/s3_cacher_spec.rb +19 -6
  79. data/spec/unit/s3_helpers_spec.rb +22 -3
  80. data/spec/unit/software_spec.rb +72 -42
  81. data/spec/unit/util_spec.rb +1 -2
  82. metadata +17 -11
@@ -285,7 +285,7 @@ module Omnibus
285
285
  #
286
286
  # @return [String, nil]
287
287
  default(:s3_access_key) do
288
- if s3_profile
288
+ if s3_profile || s3_iam_role_arn
289
289
  nil
290
290
  else
291
291
  raise MissingRequiredAttribute.new(self, :s3_access_key, "'ABCD1234'")
@@ -296,7 +296,7 @@ module Omnibus
296
296
  #
297
297
  # @return [String, nil]
298
298
  default(:s3_secret_key) do
299
- if s3_profile
299
+ if s3_profile || s3_iam_role_arn
300
300
  nil
301
301
  else
302
302
  raise MissingRequiredAttribute.new(self, :s3_secret_key, "'EFGH5678'")
@@ -308,6 +308,11 @@ module Omnibus
308
308
  # @return [String, nil]
309
309
  default(:s3_profile, nil)
310
310
 
311
+ # The AWS IAM role arn to use with S3 caching.
312
+ #
313
+ # @return [String, nil]
314
+ default(:s3_iam_role_arn, nil)
315
+
311
316
  # The region of the S3 bucket you want to cache software artifacts in.
312
317
  # Defaults to 'us-east-1'
313
318
  #
@@ -455,6 +460,11 @@ module Omnibus
455
460
  # @return [String, nil]
456
461
  default(:publish_s3_profile, nil)
457
462
 
463
+ # The AWS IAM role arn to use with S3 publisher.
464
+ #
465
+ # @return [String, nil]
466
+ default(:publish_s3_iam_role_arn, nil)
467
+
458
468
  # Directory pattern for the S3 publisher.
459
469
  # Interpolation of metadata keys is supported.
460
470
  #
@@ -276,6 +276,7 @@ module Omnibus
276
276
  unless commit_ref
277
277
  raise UnresolvableGitReference.new(ref)
278
278
  end
279
+
279
280
  commit_ref
280
281
  end
281
282
 
@@ -31,7 +31,7 @@ module Omnibus
31
31
  ALL_EXTENSIONS = WIN_7Z_EXTENSIONS + TAR_EXTENSIONS
32
32
 
33
33
  # Digest types used for verifying file checksums
34
- DIGESTS = [:sha512, :sha256, :sha1, :md5].freeze
34
+ DIGESTS = %i{sha512 sha256 sha1 md5}.freeze
35
35
 
36
36
  #
37
37
  # A fetch is required if the downloaded_file (such as a tarball) does not
@@ -314,8 +314,7 @@ module Omnibus
314
314
  #
315
315
  # @return [[String]]
316
316
  #
317
- def extract_command
318
- end
317
+ def extract_command; end
319
318
 
320
319
  #
321
320
  # Primitively determine whether we should use gtar or tar to untar a file.
@@ -56,13 +56,13 @@ module Omnibus
56
56
  #
57
57
  def all_files_under(source, options = {})
58
58
  excludes = Array(options[:exclude]).map do |exclude|
59
- [exclude, "#{exclude}/*"]
59
+ [exclude, "#{exclude}/**"]
60
60
  end.flatten
61
61
 
62
62
  source_files = glob(File.join(source, "**/*"))
63
63
  source_files = source_files.reject do |source_file|
64
64
  basename = relative_path_for(source_file, source)
65
- excludes.any? { |exclude| File.fnmatch?(exclude, basename, File::FNM_DOTMATCH) }
65
+ excludes.any? { |exclude| File.fnmatch?(exclude, basename, File::FNM_DOTMATCH | File::FNM_PATHNAME) }
66
66
  end
67
67
  end
68
68
 
@@ -47,8 +47,8 @@ $ bin/omnibus clean <%= config[:name] %> --purge
47
47
  ### Publish
48
48
 
49
49
  Omnibus has a built-in mechanism for releasing to a variety of "backends", such
50
- as Amazon S3. You must set the proper credentials in your `omnibus.rb` config
51
- file or specify them via the command line.
50
+ as Amazon S3. You must set the proper credentials in your
51
+ [`omnibus.rb`](omnibus.rb) config file or specify them via the command line.
52
52
 
53
53
  ```shell
54
54
  $ bin/omnibus publish path/to/*.deb --backend s3
@@ -82,37 +82,40 @@ version of every software definition.
82
82
 
83
83
  Kitchen-based Build Environment
84
84
  -------------------------------
85
- Every Omnibus project ships will a project-specific
86
- [Berksfile](https://docs.chef.io/berkshelf.html) that will allow you to build your omnibus projects on all of the projects listed
87
- in the `.kitchen.yml`. You can add/remove additional platforms as needed by
88
- changing the list found in the `.kitchen.yml` `platforms` YAML stanza.
85
+ Every Omnibus project ships with a project-specific
86
+ [Berksfile](https://docs.chef.io/berkshelf.html) that will allow you to build
87
+ your omnibus projects on all of the platforms listed in the
88
+ [`.kitchen.yml`](.kitchen.yml). You can add/remove additional platforms as
89
+ needed by changing the list found in the [`.kitchen.yml`](.kitchen.yml)
90
+ `platforms` YAML stanza.
89
91
 
90
92
  This build environment is designed to get you up-and-running quickly. However,
91
- there is nothing that restricts you to building on other platforms. Simply use
92
- the [omnibus cookbook](https://github.com/chef-cookbooks/omnibus) to setup
93
- your desired platform and execute the build steps listed above.
93
+ there is nothing that restricts you from building on other platforms. Simply use
94
+ the [omnibus cookbook](https://github.com/chef-cookbooks/omnibus) to setup your
95
+ desired platform and execute the build steps listed above.
94
96
 
95
97
  The default build environment requires Test Kitchen and VirtualBox for local
96
98
  development. Test Kitchen also exposes the ability to provision instances using
97
99
  various cloud providers like AWS, DigitalOcean, or OpenStack. For more
98
100
  information, please see the [Test Kitchen documentation](https://kitchen.ci/).
99
101
 
100
- Once you have tweaked your `.kitchen.yml` (or `.kitchen.local.yml`) to your
101
- liking, you can bring up an individual build environment using the `kitchen`
102
- command.
102
+ Once you have tweaked your [`.kitchen.yml`](.kitchen.yml) (or
103
+ [`.kitchen.local.yml`](.kitchen.local.yml)) to your liking, you can bring up an
104
+ individual build environment using the `kitchen` command.
105
+
103
106
 
104
107
  ```shell
105
- $ bin/kitchen converge ubuntu-1204
108
+ $ bin/kitchen converge ubuntu-1804
106
109
  ```
107
110
 
108
111
  Then login to the instance and build the project as described in the Usage
109
112
  section:
110
113
 
111
114
  ```shell
112
- $ bundle exec kitchen login ubuntu-1204
115
+ $ bin/kitchen login ubuntu-1804
116
+ [vagrant@ubuntu...] $ . load-omnibus-toolchain.sh
113
117
  [vagrant@ubuntu...] $ cd <%= config[:name] %>
114
118
  [vagrant@ubuntu...] $ bundle install
115
- [vagrant@ubuntu...] $ ...
116
119
  [vagrant@ubuntu...] $ bin/omnibus build <%= config[:name] %>
117
120
  ```
118
121
 
@@ -15,7 +15,7 @@
15
15
  #
16
16
 
17
17
  name "preparation"
18
- description "the steps required to preprare the build"
18
+ description "the steps required to prepare the build"
19
19
  default_version "1.0.0"
20
20
 
21
21
  license :project_license
@@ -31,10 +31,11 @@
31
31
  # Enable S3 asset caching
32
32
  # ------------------------------
33
33
  # use_s3_caching true
34
- # s3_access_key ENV['AWS_ACCESS_KEY_ID']
35
- # s3_secret_key ENV['AWS_SECRET_ACCESS_KEY']
36
- # s3_profile ENV['AWS_S3_PROFILE']
37
- # s3_bucket ENV['AWS_S3_BUCKET']
34
+ # s3_access_key ENV['AWS_ACCESS_KEY_ID']
35
+ # s3_secret_key ENV['AWS_SECRET_ACCESS_KEY']
36
+ # s3_profile ENV['AWS_S3_PROFILE']
37
+ # s3_iam_role_arn ENV['S3_IAM_ROLE_ARN']
38
+ # s3_bucket ENV['AWS_S3_BUCKET']
38
39
 
39
40
  # Customize compiler bits
40
41
  # ------------------------------
@@ -331,7 +331,7 @@ module Omnibus
331
331
  #
332
332
  def health_check_ldd
333
333
  regexp_ends = ".*(" + IGNORED_ENDINGS.map { |e| e.gsub(/\./, '\.') }.join("|") + ")$"
334
- regexp_patterns = IGNORED_PATTERNS.map { |e| ".*" + e.gsub(/\//, '\/') + ".*" }.join("|")
334
+ regexp_patterns = IGNORED_PATTERNS.map { |e| ".*" + e.gsub(%r{/}, '\/') + ".*" }.join("|")
335
335
  regexp = regexp_ends + "|" + regexp_patterns
336
336
 
337
337
  current_library = nil
@@ -130,8 +130,7 @@ module Omnibus
130
130
  #
131
131
  # @return [void]
132
132
  #
133
- def execute_pre_build(software)
134
- end
133
+ def execute_pre_build(software); end
135
134
 
136
135
  # Callback that gets called by Software#build_me after the build is done.
137
136
  # Invokes license copying for the given software. This ensures that
@@ -246,7 +245,7 @@ module Omnibus
246
245
 
247
246
  out << "This product bundles #{name} #{version},\n"
248
247
  out << "which is available under a \"#{license}\" License.\n"
249
- if !license_files.empty?
248
+ unless license_files.empty?
250
249
  out << "For details, see:\n"
251
250
  license_files.each do |license_file|
252
251
  out << "#{license_package_location(name, license_file)}\n"
@@ -440,7 +439,7 @@ module Omnibus
440
439
 
441
440
  if Config.fatal_transitive_dependency_licensing_warnings && !transitive_dependency_licensing_warnings.empty?
442
441
  warnings_to_raise << transitive_dependency_licensing_warnings
443
- warnings_to_raise << "If you are encountering missing license or missing license file errors for **transitive** dependencies, you can provide overrides for the missing information at https://github.com/chef/license_scout/blob/master/lib/license_scout/overrides.rb#L93"
442
+ warnings_to_raise << "If you are encountering missing license or missing license file errors for **transitive** dependencies, you can provide overrides for the missing information at https://github.com/chef/license_scout/blob/1-stable/lib/license_scout/overrides.rb#L93. \n Promote license_scout to Rubygems with `/expeditor promote chef/license_scout:1-stable X.Y.Z` in slack."
444
443
  end
445
444
 
446
445
  warnings_to_raise.flatten!
@@ -102,6 +102,7 @@ module Omnibus
102
102
  #
103
103
  def add(severity, progname, &block)
104
104
  return true if io.nil? || severity < level
105
+
105
106
  message = format_message(severity, progname, yield)
106
107
  MUTEX.synchronize { io.write(message) }
107
108
  true
@@ -138,7 +139,7 @@ module Omnibus
138
139
  else
139
140
  left = "#{format_severity(severity)} | "
140
141
  end
141
- "#{left.rjust(LEFT)}#{Time.now.iso8601()} | #{message}\n"
142
+ "#{left.rjust(LEFT)}#{Time.now.iso8601} | #{message}\n"
142
143
  end
143
144
 
144
145
  #
@@ -44,7 +44,7 @@ module Omnibus
44
44
  end
45
45
 
46
46
  def add(name, entry)
47
- if ! entry.is_a? Omnibus::ManifestEntry
47
+ unless entry.is_a? Omnibus::ManifestEntry
48
48
  raise NotAManifestEntry, "#{entry} is not an Omnibus:ManifestEntry"
49
49
  end
50
50
 
@@ -83,7 +83,7 @@ module Omnibus
83
83
  data = File.read(path_for(package))
84
84
  hash = FFI_Yajl::Parser.parse(data, symbolize_names: true)
85
85
 
86
- # Ensure Platform version has been truncated
86
+ # Ensure Platform version has been truncated
87
87
  if hash[:platform_version] && hash[:platform]
88
88
  hash[:platform_version] = truncate_platform_version(hash[:platform_version], hash[:platform])
89
89
  end
@@ -176,7 +176,7 @@ module Omnibus
176
176
  when "aix", "alpine", "mac_os_x", "openbsd", "slackware", "solaris2", "opensuse", "opensuseleap", "ubuntu", "amazon"
177
177
  # Only want MAJOR.MINOR (e.g. Mac OS X 10.9, Ubuntu 12.04)
178
178
  platform_version.split(".")[0..1].join(".")
179
- when "arch", "gentoo"
179
+ when "arch", "gentoo", "kali"
180
180
  # Arch Linux / Gentoo do not have a platform_version ohai attribute, they are rolling release (lsb_release -r)
181
181
  "rolling"
182
182
  when "windows"
@@ -69,8 +69,7 @@ module Omnibus
69
69
  version: windows_package_version,
70
70
  maintainer: project.maintainer,
71
71
  certificate_subject: certificate_subject.gsub('"', "&quot;"),
72
- }
73
- )
72
+ })
74
73
  end
75
74
 
76
75
  #
@@ -142,6 +142,7 @@ module Omnibus
142
142
  unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
143
143
  raise InvalidValue.new(:skip_packager, "be TrueClass or FalseClass")
144
144
  end
145
+
145
146
  @skip_package ||= val
146
147
  end
147
148
  expose :skip_packager
@@ -153,12 +153,11 @@ module Omnibus
153
153
  destination: "#{scripts_staging_dir}/config",
154
154
  variables: {
155
155
  name: project.name,
156
- }
157
- )
156
+ })
158
157
  end
159
158
 
160
159
  File.open(File.join(scripts_staging_dir, "config"), "a") do |file|
161
- file.puts "mv '#{alt.gsub(/^#{staging_dir}/, '')}' '#{path.gsub(/^#{staging_dir}/, '')}'"
160
+ file.puts "mv '#{alt.gsub(/^#{staging_dir}/, "")}' '#{path.gsub(/^#{staging_dir}/, "")}'"
162
161
  end
163
162
 
164
163
  path = alt
@@ -189,8 +188,7 @@ module Omnibus
189
188
  description: project.description,
190
189
  files: files,
191
190
  scripts: scripts,
192
- }
193
- )
191
+ })
194
192
 
195
193
  # Print the full contents of the rendered template file for mkinstallp's use
196
194
  log.debug(log_key) { "Rendered Template:\n" + File.read(File.join(staging_dir, "gen.template")) }
@@ -214,19 +212,19 @@ module Omnibus
214
212
  # we will chown from 'project' on, rather than 'project/dir', which leaves
215
213
  # project owned by the build user (which is incorrect)
216
214
  # First - let's find out who we are.
217
- shellout!("sudo chown -Rh 0:0 #{File.join(staging_dir, project.install_dir.match(/^\/?(\w+)/).to_s)}")
215
+ shellout!("sudo chown -Rh 0:0 #{File.join(staging_dir, project.install_dir.match(%r{^/?(\w+)}).to_s)}")
218
216
  log.info(log_key) { "Creating .bff file" }
219
217
 
220
218
  # Since we want the owner to be root, we need to sudo the mkinstallp
221
219
  # command, otherwise it will not have access to the previously chowned
222
220
  # directory.
223
- shellout!("sudo /usr/sbin/mkinstallp -d #{staging_dir} -T #{File.join(staging_dir, 'gen.template')}")
221
+ shellout!("sudo /usr/sbin/mkinstallp -d #{staging_dir} -T #{File.join(staging_dir, "gen.template")}")
224
222
 
225
223
  # Print the full contents of the inventory file generated by mkinstallp
226
224
  # from within the staging_dir's .info folder (where control files for the
227
225
  # packaging process are kept.)
228
226
  log.debug(log_key) do
229
- "With .inventory file of:\n" + File.read("#{File.join( staging_dir, '.info', "#{safe_base_package_name}.inventory" )}")
227
+ "With .inventory file of:\n" + File.read("#{File.join( staging_dir, ".info", "#{safe_base_package_name}.inventory" )}")
230
228
  end
231
229
 
232
230
  # Copy the resulting package up to the package_dir
@@ -207,7 +207,7 @@ module Omnibus
207
207
  if null?(val)
208
208
  @compression_type || :gzip
209
209
  else
210
- unless val.is_a?(Symbol) && [:gzip, :xz, :none].member?(val)
210
+ unless val.is_a?(Symbol) && %i{gzip xz none}.member?(val)
211
211
  raise InvalidValue.new(:compression_type, "be a Symbol (:gzip, :xz, or :none)")
212
212
  end
213
213
 
@@ -261,7 +261,7 @@ module Omnibus
261
261
  @compression_strategy
262
262
  else
263
263
  unless val.is_a?(Symbol) &&
264
- [:filtered, :huffman, :rle, :fixed, :extreme].member?(val)
264
+ %i{filtered huffman rle fixed extreme}.member?(val)
265
265
  raise InvalidValue.new(:compression_strategy, "be a Symbol (:filtered, "\
266
266
  ":huffman, :rle, :fixed, or :extreme)")
267
267
  end
@@ -320,8 +320,7 @@ module Omnibus
320
320
  conflicts: project.conflicts,
321
321
  replaces: project.replaces,
322
322
  dependencies: project.runtime_dependencies,
323
- }
324
- )
323
+ })
325
324
  end
326
325
 
327
326
  #
@@ -336,8 +335,7 @@ module Omnibus
336
335
  destination: File.join(debian_dir, "conffiles"),
337
336
  variables: {
338
337
  config_files: project.config_files,
339
- }
340
- )
338
+ })
341
339
  end
342
340
 
343
341
  #
@@ -380,8 +378,7 @@ module Omnibus
380
378
  destination: File.join(debian_dir, "md5sums"),
381
379
  variables: {
382
380
  md5sums: hash,
383
- }
384
- )
381
+ })
385
382
  end
386
383
 
387
384
  #
@@ -421,7 +418,7 @@ module Omnibus
421
418
  #
422
419
  # @return [void]
423
420
  def sign_deb_file
424
- if !signing_passphrase
421
+ unless signing_passphrase
425
422
  log.info(log_key) { "Signing not enabled for .deb file" }
426
423
  return
427
424
  end
@@ -447,7 +444,7 @@ module Omnibus
447
444
  # Create signature (as +root+)
448
445
  gpg_command = "#{gpg} --armor --sign --detach-sign"
449
446
  gpg_command << " --local-user '#{project.maintainer}'"
450
- gpg_command << " --homedir #{ENV['HOME']}/.gnupg" # TODO: Make this configurable
447
+ gpg_command << " --homedir #{ENV["HOME"]}/.gnupg" # TODO: Make this configurable
451
448
  ## pass the +signing_passphrase+ via +STDIN+
452
449
  gpg_command << " --batch --no-tty"
453
450
  ## Check `gpg` for the compatibility/need of pinentry-mode
@@ -209,8 +209,7 @@ module Omnibus
209
209
  destination: transform_file,
210
210
  variables: {
211
211
  pathdir: project.install_dir.split("/")[1],
212
- }
213
- )
212
+ })
214
213
  end
215
214
 
216
215
  #
@@ -242,8 +241,7 @@ module Omnibus
242
241
  render_template_content(resource_path(symlinks_file),
243
242
  {
244
243
  projectdir: project.install_dir,
245
- }
246
- )
244
+ })
247
245
  end
248
246
 
249
247
  #
@@ -262,8 +260,7 @@ module Omnibus
262
260
  description: project.description,
263
261
  summary: project.friendly_name,
264
262
  arch: safe_architecture,
265
- }
266
- )
263
+ })
267
264
 
268
265
  # Append the contents of symlinks_file if it exists
269
266
  if symlinks_file
@@ -81,8 +81,7 @@ module Omnibus
81
81
  destination: makeselfinst_staging_path,
82
82
  variables: {
83
83
  install_dir: project.install_dir,
84
- }
85
- )
84
+ })
86
85
  FileUtils.chmod(0755, makeselfinst_staging_path)
87
86
  end
88
87
 
@@ -181,10 +181,12 @@ module Omnibus
181
181
  unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
182
182
  raise InvalidValue.new(:iwix_light_delay_validation, "be TrueClass or FalseClass")
183
183
  end
184
+
184
185
  @delay_validation ||= val
185
186
  unless @delay_validation
186
187
  return ""
187
188
  end
189
+
188
190
  "-sval"
189
191
  end
190
192
  expose :wix_light_delay_validation
@@ -225,6 +227,7 @@ module Omnibus
225
227
  unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
226
228
  raise InvalidValue.new(:bundle_msi, "be TrueClass or FalseClass")
227
229
  end
230
+
228
231
  @bundle_msi ||= val
229
232
  end
230
233
  expose :bundle_msi
@@ -244,6 +247,7 @@ module Omnibus
244
247
  unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
245
248
  raise InvalidValue.new(:fast_msi, "be TrueClass or FalseClass")
246
249
  end
250
+
247
251
  @fast_msi ||= val
248
252
  end
249
253
  expose :fast_msi
@@ -298,6 +302,7 @@ module Omnibus
298
302
 
299
303
  raise "Could not find `#{search_pattern}'!" if file_paths.none?
300
304
  raise "Multiple possible matches of `#{search_pattern}'! : #{file_paths}" if file_paths.count > 1
305
+
301
306
  file_paths.first.relative_path_from(install_path).to_s
302
307
  end
303
308
  expose :gem_path
@@ -340,8 +345,7 @@ module Omnibus
340
345
  name: project.package_name,
341
346
  friendly_name: project.friendly_name,
342
347
  maintainer: project.maintainer,
343
- }
344
- )
348
+ })
345
349
  end
346
350
 
347
351
  #
@@ -360,8 +364,7 @@ module Omnibus
360
364
  parameters: parameters,
361
365
  version: windows_package_version,
362
366
  display_version: msi_display_version,
363
- }
364
- )
367
+ })
365
368
  end
366
369
 
367
370
  #
@@ -408,8 +411,7 @@ module Omnibus
408
411
  hierarchy: hierarchy,
409
412
  fastmsi: fast_msi,
410
413
  wix_install_dir: wix_install_dir,
411
- }
412
- )
414
+ })
413
415
  end
414
416
 
415
417
  #
@@ -429,8 +431,7 @@ module Omnibus
429
431
  version: windows_package_version,
430
432
  display_version: msi_display_version,
431
433
  msi: windows_safe_path(Config.package_dir, msi_name),
432
- }
433
- )
434
+ })
434
435
  end
435
436
 
436
437
  #
@@ -487,7 +488,7 @@ module Omnibus
487
488
  -ext WixBalExtension
488
489
  #{wix_extension_switches(wix_candle_extensions)}
489
490
  -dOmnibusCacheDir="#{windows_safe_path(File.expand_path(Config.cache_dir))}"
490
- "#{windows_safe_path(staging_dir, 'bundle.wxs')}"
491
+ "#{windows_safe_path(staging_dir, "bundle.wxs")}"
491
492
  EOH
492
493
  else
493
494
  <<-EOH.split.join(" ").squeeze(" ").strip
@@ -496,7 +497,7 @@ module Omnibus
496
497
  #{wix_candle_flags}
497
498
  #{wix_extension_switches(wix_candle_extensions)}
498
499
  -dProjectSourceDir="#{windows_safe_path(project.install_dir)}" "project-files.wxs"
499
- "#{windows_safe_path(staging_dir, 'source.wxs')}"
500
+ "#{windows_safe_path(staging_dir, "source.wxs")}"
500
501
  EOH
501
502
  end
502
503
  end
@@ -588,7 +589,7 @@ module Omnibus
588
589
  # @return [String]
589
590
  #
590
591
  def wix_extension_switches(arr)
591
- "#{arr.map { |e| "-ext '#{e}'" }.join(' ')}"
592
+ "#{arr.map { |e| "-ext '#{e}'" }.join(" ")}"
592
593
  end
593
594
  end
594
595
  end