mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
78 lines
1.6 KiB
Bash
78 lines
1.6 KiB
Bash
![]() |
# does the quickest output of brew list possible for no named arguments.
|
||
|
# HOMEBREW_CELLAR, HOMEBREW_PREFIX are set by brew.sh
|
||
|
# shellcheck disable=SC2154
|
||
|
homebrew-list() {
|
||
|
case "$1" in
|
||
|
# check we actually have list and not e.g. listsomething
|
||
|
list) ;;
|
||
|
list*) return 1 ;;
|
||
|
*) ;;
|
||
|
esac
|
||
|
|
||
|
local ls_args=()
|
||
|
local formula=""
|
||
|
local cask=""
|
||
|
|
||
|
for arg in "$@"
|
||
|
do
|
||
|
case "${arg}" in
|
||
|
# check for flags passed to ls
|
||
|
-1 | -l | -r | -t) ls_args+=("${arg}") ;;
|
||
|
--formula | --formulae) formula=1 ;;
|
||
|
--cask | --casks) cask=1 ;;
|
||
|
# reject all other flags
|
||
|
-* | *) return 1 ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
local tty
|
||
|
if [[ -t 1 ]]
|
||
|
then
|
||
|
tty=1
|
||
|
fi
|
||
|
|
||
|
local error_string="LS_ERRORED"
|
||
|
if [[ -z "${cask}" && -d "${HOMEBREW_CELLAR}" ]]
|
||
|
then
|
||
|
if [[ -n "${tty}" && -z "${formula}" ]]
|
||
|
then
|
||
|
ohai "Formulae"
|
||
|
fi
|
||
|
|
||
|
local formula_output
|
||
|
formula_output="$(ls "${ls_args[@]}" "${HOMEBREW_CELLAR}" || echo "${error_string}")"
|
||
|
if [[ "${formula_output}" == "${error_string}" ]]
|
||
|
then
|
||
|
exit 1
|
||
|
elif [[ -n "${formula_output}" ]]
|
||
|
then
|
||
|
echo "${formula_output}"
|
||
|
fi
|
||
|
|
||
|
if [[ -n "${tty}" && -z "${formula}" ]]
|
||
|
then
|
||
|
echo
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [[ -z "${formula}" && -d "${HOMEBREW_CASKROOM}" ]]
|
||
|
then
|
||
|
if [[ -n "${tty}" && -z "${cask}" ]]
|
||
|
then
|
||
|
ohai "Casks"
|
||
|
fi
|
||
|
|
||
|
local cask_output
|
||
|
cask_output="$(ls "${ls_args[@]}" "${HOMEBREW_CASKROOM}" || echo "${error_string}")"
|
||
|
if [[ "${cask_output}" == "${error_string}" ]]
|
||
|
then
|
||
|
exit 1
|
||
|
elif [[ -n "${cask_output}" ]]
|
||
|
then
|
||
|
echo "${cask_output}"
|
||
|
fi
|
||
|
|
||
|
return 0
|
||
|
fi
|
||
|
}
|