cli/parser: convert switch env values to boolean
Since switch values are boolean, we should be returning the environment variable's presence instead of its string value. Fixes #20531.
This commit is contained in:
parent
e910f91124
commit
33a2f410af
@ -231,7 +231,8 @@ module Homebrew
|
||||
end
|
||||
|
||||
env_value = value_for_env(env)
|
||||
set_switch(*names, value: env_value, from: :env) unless env_value.nil?
|
||||
value = env_value&.present?
|
||||
set_switch(*names, value:, from: :env) unless value.nil?
|
||||
end
|
||||
alias switch_option switch
|
||||
|
||||
|
||||
@ -10,12 +10,15 @@ RSpec.describe Homebrew::CLI::Parser do
|
||||
described_class.new(Cmd) do
|
||||
switch "--more-verbose", description: "Flag for higher verbosity"
|
||||
switch "--pry", env: :pry
|
||||
switch "--bar", env: :bar
|
||||
switch "--hidden", hidden: true
|
||||
end
|
||||
end
|
||||
|
||||
before do
|
||||
allow(Homebrew::EnvConfig).to receive(:pry?).and_return(true)
|
||||
allow(ENV).to receive(:fetch).and_call_original
|
||||
allow(ENV).to receive(:fetch).with("HOMEBREW_BAR", nil).and_return("1")
|
||||
end
|
||||
|
||||
context "when using binary options" do
|
||||
@ -113,6 +116,7 @@ RSpec.describe Homebrew::CLI::Parser do
|
||||
it "maps environment var to an option" do
|
||||
args = parser.parse([])
|
||||
expect(args.pry?).to be true
|
||||
expect(args.bar?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user