mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
ARGV+yeast
Extensions to ARGV that are convenient or improve our robustness
This commit is contained in:
parent
cae0e78e60
commit
b32d2044c5
84
Library/Homebrew/ARGV+yeast.rb
Normal file
84
Library/Homebrew/ARGV+yeast.rb
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# Copyright 2009 Max Howell <max@methylblue.com>
|
||||||
|
#
|
||||||
|
# This file is part of Homebrew.
|
||||||
|
#
|
||||||
|
# Homebrew is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Homebrew is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with Homebrew. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
module HomebrewArgvExtension
|
||||||
|
def named
|
||||||
|
reject {|arg| arg[0..0] == '-'}
|
||||||
|
end
|
||||||
|
def options
|
||||||
|
select {|arg| arg[0..0] == '-'}
|
||||||
|
end
|
||||||
|
def formulae
|
||||||
|
require 'formula'
|
||||||
|
named.collect {|name| Formula.factory name}
|
||||||
|
end
|
||||||
|
def kegs
|
||||||
|
require 'keg'
|
||||||
|
named.collect do |name|
|
||||||
|
d=HOMEBREW_CELLAR+name
|
||||||
|
raise "#{name} is not installed" if not d.directory? or d.children.length == 0
|
||||||
|
raise "#{name} has multiple installed versions" if d.children.length > 1
|
||||||
|
Keg.new d.children[0]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# self documenting perhaps?
|
||||||
|
def include? arg
|
||||||
|
@n=index arg
|
||||||
|
end
|
||||||
|
def next
|
||||||
|
at @n+1
|
||||||
|
end
|
||||||
|
|
||||||
|
def force?
|
||||||
|
flag? '--force'
|
||||||
|
end
|
||||||
|
def verbose?
|
||||||
|
flag? '--verbose'
|
||||||
|
end
|
||||||
|
def debug?
|
||||||
|
flag? '--debug' or ENV['HOMEBREW_DEBUG']
|
||||||
|
end
|
||||||
|
|
||||||
|
def flag? flag
|
||||||
|
options.each do |arg|
|
||||||
|
return true if arg == flag
|
||||||
|
next if arg[1..1] == '-'
|
||||||
|
return true if arg.include? flag[2..2]
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
def usage
|
||||||
|
<<-EOS
|
||||||
|
Usage: brew command [formula] ...
|
||||||
|
Usage: brew [--prefix] [--cache] [--version]
|
||||||
|
Usage: brew [--verbose]
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
install formula ... [--debug] [--interactive]
|
||||||
|
rm formula ...
|
||||||
|
list formula ...
|
||||||
|
ln formula ...
|
||||||
|
info [formula] [--github]
|
||||||
|
mk url
|
||||||
|
prune
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ARGV.extend HomebrewArgvExtension
|
Loading…
x
Reference in New Issue
Block a user