From 8b8ac9f81f9aadc59d77f5be8aba4eaa1e5775b6 Mon Sep 17 00:00:00 2001 From: Jeffrey Martin Date: Wed, 11 Jul 2018 21:36:11 -0500 Subject: [PATCH] add support for light to delay validation Signed-off-by: Jeffrey Martin --- lib/omnibus/packagers/msi.rb | 25 +++++++++++++++++++++++++ spec/unit/packagers/msi_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/lib/omnibus/packagers/msi.rb b/lib/omnibus/packagers/msi.rb index 93c7afdac..9c9f90a63 100644 --- a/lib/omnibus/packagers/msi.rb +++ b/lib/omnibus/packagers/msi.rb @@ -166,6 +166,29 @@ def wix_light_extension(extension) end expose :wix_light_extension + # + # Signal delay validation for wix light + # + # @example + # wix_light_deplay_validation true + # + # @param [TrueClass, FalseClass] value + # whether to delay validation or not + # + # @return [String] + # whether we're a bundle or not + def wix_light_delay_validation(val = false) + unless val.is_a?(TrueClass) || val.is_a?(FalseClass) + raise InvalidValue.new(:iwix_light_delay_validation, "be TrueClass or FalseClass") + end + @delay_validation ||= val + unless @delay_validation + return "" + end + "-sval" + end + expose :wix_light_delay_validation + # # Set the wix candle extensions to load # @@ -465,6 +488,7 @@ def light_command(out_file, is_bundle: false) <<-EOH.split.join(" ").squeeze(" ").strip light.exe -nologo + #{wix_light_delay_validation} -ext WixUIExtension -ext WixBalExtension #{wix_extension_switches(wix_light_extensions)} @@ -477,6 +501,7 @@ def light_command(out_file, is_bundle: false) <<-EOH.split.join(" ").squeeze(" ").strip light.exe -nologo + #{wix_light_delay_validation} -ext WixUIExtension #{wix_extension_switches(wix_light_extensions)} -cultures:en-us diff --git a/spec/unit/packagers/msi_spec.rb b/spec/unit/packagers/msi_spec.rb index 27b441dac..c2b9f1b77 100644 --- a/spec/unit/packagers/msi_spec.rb +++ b/spec/unit/packagers/msi_spec.rb @@ -269,6 +269,28 @@ module Omnibus end end + describe "#wix_light_delay_validation" do + it "is a DSL method" do + expect(subject).to have_exposed_method(:wix_light_delay_validation) + end + + it "requires the value to be a TrueClass or a FalseClass" do + expect do + subject.wix_light_delay_validation(Object.new) + end.to raise_error(InvalidValue) + end + + it "defaults to an empty String" do + expect(subject.wix_light_delay_validation).to be_a(String) + expect(subject.wix_light_delay_validation).to be_empty + end + + it "returns the string `-sval` when true" do + subject.wix_light_delay_validation(true) + expect(subject.wix_light_delay_validation).to eq("-sval") + end + end + describe "#wix_candle_extension" do it "is a DSL method" do expect(subject).to have_exposed_method(:wix_candle_extension)