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