Port Homebrew::Cmd::Developer

This commit is contained in:
Douglas Eichelberger 2024-03-29 18:17:43 -07:00
parent 1fc4a93ca1
commit bde44cfc99
2 changed files with 46 additions and 46 deletions

View File

@ -1,14 +1,12 @@
# typed: true # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
require "cli/parser" require "abstract_command"
module Homebrew module Homebrew
module_function module Cmd
class Developer < AbstractCommand
sig { returns(CLI::Parser) } cmd_args do
def developer_args
Homebrew::CLI::Parser.new do
description <<~EOS description <<~EOS
Control Homebrew's developer mode. When developer mode is enabled, Control Homebrew's developer mode. When developer mode is enabled,
`brew update` will update Homebrew to the latest commit on the `master` `brew update` will update Homebrew to the latest commit on the `master`
@ -23,11 +21,9 @@ module Homebrew
named_args %w[state on off], max: 1 named_args %w[state on off], max: 1
end end
end
def developer
args = developer_args.parse
sig { override.void }
def run
env_vars = [] env_vars = []
env_vars << "HOMEBREW_DEVELOPER" if Homebrew::EnvConfig.developer? env_vars << "HOMEBREW_DEVELOPER" if Homebrew::EnvConfig.developer?
env_vars << "HOMEBREW_UPDATE_TO_TAG" if Homebrew::EnvConfig.update_to_tag? env_vars << "HOMEBREW_UPDATE_TO_TAG" if Homebrew::EnvConfig.update_to_tag?
@ -38,7 +34,8 @@ module Homebrew
case args.named.first case args.named.first
when nil, "state" when nil, "state"
if env_vars.any? if env_vars.any?
puts "Developer mode is enabled because #{env_vars.to_sentence} #{(env_vars.count == 1) ? "is" : "are"} set." verb = (env_vars.count == 1) ? "is" : "are"
puts "Developer mode is enabled because #{env_vars.to_sentence} #{verb} set."
elsif Homebrew::Settings.read("devcmdrun") == "true" elsif Homebrew::Settings.read("devcmdrun") == "true"
puts "Developer mode is enabled." puts "Developer mode is enabled."
else else
@ -54,3 +51,5 @@ module Homebrew
end end
end end
end end
end
end

View File

@ -1,7 +1,8 @@
# frozen_string_literal: true # frozen_string_literal: true
require "cmd/developer"
require "cmd/shared_examples/args_parse" require "cmd/shared_examples/args_parse"
RSpec.describe "brew developer" do RSpec.describe Homebrew::Cmd::Developer do
it_behaves_like "parseable arguments" it_behaves_like "parseable arguments"
end end