Merge pull request #14892 from apainintheneck/irb-improvements
`brew irb` improvements
This commit is contained in:
commit
e5c0fb4ca6
1
.gitignore
vendored
1
.gitignore
vendored
@ -194,6 +194,7 @@
|
|||||||
!/.dockerignore
|
!/.dockerignore
|
||||||
!/.editorconfig
|
!/.editorconfig
|
||||||
!/.gitignore
|
!/.gitignore
|
||||||
|
!/.irb_config
|
||||||
!/.yardopts
|
!/.yardopts
|
||||||
!/.vale.ini
|
!/.vale.ini
|
||||||
!/.shellcheckrc
|
!/.shellcheckrc
|
||||||
|
|||||||
9
Library/Homebrew/brew_irbrc
Normal file
9
Library/Homebrew/brew_irbrc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Note: that we use a non-standard config file name to reduce
|
||||||
|
# name clashes with other IRB config files like `.irbrc`.
|
||||||
|
# Note #2: This doesn't work with system Ruby for some reason.
|
||||||
|
|
||||||
|
require 'irb/completion'
|
||||||
|
|
||||||
|
IRB.conf[:SAVE_HISTORY] = 100
|
||||||
|
IRB.conf[:HISTORY_FILE] = "#{Dir.home}/.brew_irb_history"
|
||||||
|
IRB.conf[:IRB_NAME] = "brew"
|
||||||
@ -48,6 +48,8 @@ module Homebrew
|
|||||||
# work around IRB modifying ARGV.
|
# work around IRB modifying ARGV.
|
||||||
args = irb_args.parse(ARGV.dup.freeze)
|
args = irb_args.parse(ARGV.dup.freeze)
|
||||||
|
|
||||||
|
clean_argv
|
||||||
|
|
||||||
if args.examples?
|
if args.examples?
|
||||||
puts <<~EOS
|
puts <<~EOS
|
||||||
'v8'.f # => instance of the v8 formula
|
'v8'.f # => instance of the v8 formula
|
||||||
@ -64,7 +66,6 @@ module Homebrew
|
|||||||
if args.pry?
|
if args.pry?
|
||||||
Homebrew.install_gem_setup_path! "pry"
|
Homebrew.install_gem_setup_path! "pry"
|
||||||
require "pry"
|
require "pry"
|
||||||
Pry.config.prompt_name = "brew"
|
|
||||||
else
|
else
|
||||||
require "irb"
|
require "irb"
|
||||||
end
|
end
|
||||||
@ -75,9 +76,25 @@ module Homebrew
|
|||||||
|
|
||||||
ohai "Interactive Homebrew Shell", "Example commands available with: `brew irb --examples`"
|
ohai "Interactive Homebrew Shell", "Example commands available with: `brew irb --examples`"
|
||||||
if args.pry?
|
if args.pry?
|
||||||
|
Pry.config.should_load_rc = false # skip loading .pryrc
|
||||||
|
Pry.config.history_file = "#{Dir.home}/.brew_pry_history"
|
||||||
|
Pry.config.memory_size = 100 # max lines to save to history file
|
||||||
|
Pry.config.prompt_name = "brew"
|
||||||
|
|
||||||
Pry.start
|
Pry.start
|
||||||
else
|
else
|
||||||
|
ENV["IRBRC"] = (HOMEBREW_LIBRARY_PATH/"brew_irbrc").to_s
|
||||||
|
|
||||||
IRB.start
|
IRB.start
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Remove the `--debug`, `--verbose` and `--quiet` options which cause problems
|
||||||
|
# for IRB and have already been parsed by the CLI::Parser.
|
||||||
|
def clean_argv
|
||||||
|
global_options = Homebrew::CLI::Parser
|
||||||
|
.global_options
|
||||||
|
.flat_map { |options| options[0..1] }
|
||||||
|
ARGV.reject! { |arg| global_options.include?(arg) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user