bin/brew: allow writing Homebrew commands in Bash.
This commit is contained in:
parent
effca7d9c6
commit
b01ce41164
35
bin/brew
35
bin/brew
@ -1,7 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
chdir() {
|
chdir() {
|
||||||
cd "$@" >/dev/null
|
cd "$@" >/dev/null || {
|
||||||
|
echo "Error: failed to cd to " "$@" "!" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Force UTF-8 to avoid encoding issues for users with broken locale settings.
|
# Force UTF-8 to avoid encoding issues for users with broken locale settings.
|
||||||
@ -61,4 +64,30 @@ export HOMEBREW_REPOSITORY
|
|||||||
export HOMEBREW_LIBRARY
|
export HOMEBREW_LIBRARY
|
||||||
export HOMEBREW_CELLAR
|
export HOMEBREW_CELLAR
|
||||||
|
|
||||||
exec "$HOMEBREW_RUBY_PATH" -W0 "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@"
|
for i in "$@"
|
||||||
|
do
|
||||||
|
if [[ "$1" = -v ]]
|
||||||
|
then
|
||||||
|
shift
|
||||||
|
set -- "$@" -v
|
||||||
|
fi
|
||||||
|
[[ "$i" =~ ^- ]] && continue
|
||||||
|
HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/cmd/$i.sh"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$HOMEBREW_BASH_COMMAND" ] && [ -x "$HOMEBREW_BASH_COMMAND" ]
|
||||||
|
then
|
||||||
|
# source rather than executing directly to ensure the entire file is read into
|
||||||
|
# memory before it is run. This makes running a Bash script behave more like
|
||||||
|
# a Ruby script and avoids hard-to-debug issues if the Bash script is updated
|
||||||
|
# at the same time as being run.
|
||||||
|
#
|
||||||
|
# Hide shellcheck complaint:
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "$HOMEBREW_BASH_COMMAND"
|
||||||
|
"$HOMEBREW_COMMAND" "$@"
|
||||||
|
exit $?
|
||||||
|
else
|
||||||
|
exec "$HOMEBREW_RUBY_PATH" -W0 "$HOMEBREW_LIBRARY/brew.rb" "$@"
|
||||||
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user