diff options
Diffstat (limited to 'qa/qa/scenario/bootable.rb')
-rw-r--r-- | qa/qa/scenario/bootable.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/qa/qa/scenario/bootable.rb b/qa/qa/scenario/bootable.rb index 841ac4dd560..ae180ffce1c 100644 --- a/qa/qa/scenario/bootable.rb +++ b/qa/qa/scenario/bootable.rb @@ -17,6 +17,22 @@ module QA arguments = OptionParser.new do |parser| options.to_a.each do |opt| + # The argument for the --set-feature-flags option should look something like "flag1=enabled,flag2=disabled" + # Here we translate that string into a hash, e.g.: { 'flag1' => 'enabled', 'flag2' => "disabled" } + if opt.name == :set_feature_flags + parser.on(opt.arg, opt.desc) do |flags| + value = flags.split(',').each_with_object({}) do |pair, hash| + flag_name, flag_value = pair.split('=') + raise '--set-feature-flags requires flag name and flag state for each flag, e.g., flag1=enabled,flag2=disabled' unless flag_name && flag_value + + hash[flag_name] = flag_value + end + Runtime::Scenario.define(opt.name, value) + end + + next + end + parser.on(opt.arg, opt.desc) do |value| Runtime::Scenario.define(opt.name, value) end |