Port Homebrew::DevCmd::Sh
This commit is contained in:
parent
177bab38c7
commit
1436b06e90
@ -1,14 +1,13 @@
|
|||||||
# typed: true
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "abstract_command"
|
||||||
require "cli/parser"
|
require "cli/parser"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module_function
|
module DevCmd
|
||||||
|
class Ruby < AbstractCommand
|
||||||
sig { returns(CLI::Parser) }
|
cmd_args do
|
||||||
def ruby_args
|
|
||||||
Homebrew::CLI::Parser.new do
|
|
||||||
usage_banner "`ruby` [<options>] (`-e` <text>|<file>)"
|
usage_banner "`ruby` [<options>] (`-e` <text>|<file>)"
|
||||||
description <<~EOS
|
description <<~EOS
|
||||||
Run a Ruby instance with Homebrew's libraries loaded. For example,
|
Run a Ruby instance with Homebrew's libraries loaded. For example,
|
||||||
@ -23,11 +22,9 @@ module Homebrew
|
|||||||
|
|
||||||
named_args :file
|
named_args :file
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def ruby
|
|
||||||
args = ruby_args.parse
|
|
||||||
|
|
||||||
|
sig { override.void }
|
||||||
|
def run
|
||||||
ruby_sys_args = []
|
ruby_sys_args = []
|
||||||
ruby_sys_args << "-r#{args.r}" if args.r
|
ruby_sys_args << "-r#{args.r}" if args.r
|
||||||
ruby_sys_args << "-e #{args.e}" if args.e
|
ruby_sys_args << "-e #{args.e}" if args.e
|
||||||
@ -39,3 +36,5 @@ module Homebrew
|
|||||||
*ruby_sys_args)
|
*ruby_sys_args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
@ -1,16 +1,15 @@
|
|||||||
# typed: true
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "abstract_command"
|
||||||
require "extend/ENV"
|
require "extend/ENV"
|
||||||
require "formula"
|
require "formula"
|
||||||
require "cli/parser"
|
require "cli/parser"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module_function
|
module DevCmd
|
||||||
|
class Sh < AbstractCommand
|
||||||
sig { returns(CLI::Parser) }
|
cmd_args do
|
||||||
def sh_args
|
|
||||||
Homebrew::CLI::Parser.new do
|
|
||||||
description <<~EOS
|
description <<~EOS
|
||||||
Enter an interactive shell for Homebrew's build environment. Use years-battle-hardened
|
Enter an interactive shell for Homebrew's build environment. Use years-battle-hardened
|
||||||
build logic to help your `./configure && make && make install`
|
build logic to help your `./configure && make && make install`
|
||||||
@ -25,11 +24,9 @@ module Homebrew
|
|||||||
|
|
||||||
named_args :file, max: 1
|
named_args :file, max: 1
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def sh
|
|
||||||
args = sh_args.parse
|
|
||||||
|
|
||||||
|
sig { override.void }
|
||||||
|
def run
|
||||||
ENV.activate_extensions!(env: args.env)
|
ENV.activate_extensions!(env: args.env)
|
||||||
|
|
||||||
ENV.deps = Formula.installed.select { |f| f.keg_only? && f.opt_prefix.directory? } if superenv?(args.env)
|
ENV.deps = Formula.installed.select { |f| f.keg_only? && f.opt_prefix.directory? } if superenv?(args.env)
|
||||||
@ -70,3 +67,5 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "cmd/shared_examples/args_parse"
|
require "cmd/shared_examples/args_parse"
|
||||||
|
require "dev-cmd/ruby"
|
||||||
|
|
||||||
RSpec.describe "brew ruby" do
|
RSpec.describe Homebrew::DevCmd::Ruby do
|
||||||
it_behaves_like "parseable arguments"
|
it_behaves_like "parseable arguments"
|
||||||
|
|
||||||
it "executes ruby code with Homebrew's libraries loaded", :integration_test do
|
it "executes ruby code with Homebrew's libraries loaded", :integration_test do
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "cmd/shared_examples/args_parse"
|
require "cmd/shared_examples/args_parse"
|
||||||
|
require "dev-cmd/sh"
|
||||||
|
|
||||||
RSpec.describe "brew sh" do
|
RSpec.describe Homebrew::DevCmd::Sh do
|
||||||
it_behaves_like "parseable arguments"
|
it_behaves_like "parseable arguments"
|
||||||
|
|
||||||
it "runs a shell with the Homebrew environment", :integration_test do
|
it "runs a shell with the Homebrew environment", :integration_test do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user