mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Add shell optimisation for --cellar
This commit is contained in:
parent
c2342eca91
commit
dc286a11ff
@ -75,10 +75,10 @@ case "$*" in
|
|||||||
homebrew-casks
|
homebrew-casks
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
# falls back to cmd/prefix.rb on a non-zero return
|
# falls back to cmd/--prefix.rb and cmd/--cellar.rb on a non-zero return
|
||||||
--prefix*)
|
--prefix* | --cellar*)
|
||||||
source "${HOMEBREW_LIBRARY}/Homebrew/prefix.sh"
|
source "${HOMEBREW_LIBRARY}/Homebrew/formula_path.sh"
|
||||||
homebrew-prefix "$@" && exit 0
|
homebrew-formula-path "$@" && exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
# does the quickest output of brew --prefix possible for the basic cases:
|
# does the quickest output of brew --prefix/--cellar possible for the basic cases:
|
||||||
# - `brew --prefix` (output HOMEBREW_PREFIX)
|
# - `brew --prefix` (output HOMEBREW_PREFIX)
|
||||||
|
# - `brew --cellar` (output HOMEBREW_CELLAR)
|
||||||
# - `brew --prefix <formula>` (output HOMEBREW_PREFIX/opt/<formula>)
|
# - `brew --prefix <formula>` (output HOMEBREW_PREFIX/opt/<formula>)
|
||||||
# anything else? delegate to the slower cmd/--prefix.rb
|
# - `brew --cellar <formula>` (output HOMEBREW_CELLAR/<formula>)
|
||||||
|
# anything else? delegate to the slower cmd/--prefix.rb and cmd/--cellar.rb
|
||||||
# HOMEBREW_PREFIX and HOMEBREW_REPOSITORY are set by brew.sh
|
# HOMEBREW_PREFIX and HOMEBREW_REPOSITORY are set by brew.sh
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
homebrew-prefix() {
|
homebrew-formula-path() {
|
||||||
while [[ "$#" -gt 0 ]]
|
while [[ "$#" -gt 0 ]]
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -13,6 +15,10 @@ homebrew-prefix() {
|
|||||||
local prefix="1"
|
local prefix="1"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--cellar)
|
||||||
|
local cellar="1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
# reject all other flags
|
# reject all other flags
|
||||||
-*) return 1 ;;
|
-*) return 1 ;;
|
||||||
*)
|
*)
|
||||||
@ -22,8 +28,18 @@ homebrew-prefix() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
[[ -z "${prefix}" ]] && return 1
|
[[ -z "${prefix}" && -z "${cellar}" ]] && return 1
|
||||||
[[ -z "${formula}" ]] && echo "${HOMEBREW_PREFIX}" && return 0
|
[[ -n "${prefix}" && -n "${cellar}" ]] && return 1 # don't allow both!
|
||||||
|
if [[ -z "${formula}" ]]
|
||||||
|
then
|
||||||
|
if [[ -n "${prefix}" ]]
|
||||||
|
then
|
||||||
|
echo "${HOMEBREW_PREFIX}"
|
||||||
|
else
|
||||||
|
echo "${HOMEBREW_CELLAR}"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
local formula_exists
|
local formula_exists
|
||||||
if [[ -f "${HOMEBREW_REPOSITORY}/Library/Taps/homebrew/homebrew-core/Formula/${formula}.rb" ]]
|
if [[ -f "${HOMEBREW_REPOSITORY}/Library/Taps/homebrew/homebrew-core/Formula/${formula}.rb" ]]
|
||||||
@ -63,6 +79,11 @@ homebrew-prefix() {
|
|||||||
|
|
||||||
[[ -z "${formula_exists}" ]] && return 1
|
[[ -z "${formula_exists}" ]] && return 1
|
||||||
|
|
||||||
|
if [[ -n "${prefix}" ]]
|
||||||
|
then
|
||||||
echo "${HOMEBREW_PREFIX}/opt/${formula}"
|
echo "${HOMEBREW_PREFIX}/opt/${formula}"
|
||||||
|
else
|
||||||
|
echo "${HOMEBREW_CELLAR}/${formula}"
|
||||||
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user