Merge pull request #10259 from kidonng/cask-completion

Add brew casks command
This commit is contained in:
Mike McQuaid 2021-01-08 13:04:53 +00:00 committed by GitHub
commit 30d5fc6285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 65 additions and 37 deletions

View File

@ -55,6 +55,7 @@ case "$*" in
--cache) echo "$HOMEBREW_CACHE"; exit 0 ;; --cache) echo "$HOMEBREW_CACHE"; exit 0 ;;
shellenv) source "$HOMEBREW_LIBRARY/Homebrew/cmd/shellenv.sh"; homebrew-shellenv; exit 0 ;; shellenv) source "$HOMEBREW_LIBRARY/Homebrew/cmd/shellenv.sh"; homebrew-shellenv; exit 0 ;;
formulae) source "$HOMEBREW_LIBRARY/Homebrew/cmd/formulae.sh"; homebrew-formulae; exit 0 ;; formulae) source "$HOMEBREW_LIBRARY/Homebrew/cmd/formulae.sh"; homebrew-formulae; exit 0 ;;
casks) source "$HOMEBREW_LIBRARY/Homebrew/cmd/casks.sh"; homebrew-casks; exit 0 ;;
esac esac
##### #####

View File

@ -0,0 +1,12 @@
#: * `casks`
#:
#: List all locally installable casks including short names.
#:
# Don't need shellcheck to follow the `source`.
# shellcheck disable=SC1090
source "$HOMEBREW_LIBRARY/Homebrew/items.sh"
homebrew-casks() {
homebrew-items 'Formula' 's|/Casks/|/|' '^homebrew/cask'
}

View File

@ -3,35 +3,10 @@
#: List all locally installable formulae including short names. #: List all locally installable formulae including short names.
#: #:
# Don't need shellcheck to follow the `source`.
# shellcheck disable=SC1090
source "$HOMEBREW_LIBRARY/Homebrew/items.sh"
homebrew-formulae() { homebrew-formulae() {
local formulae homebrew-items 'Casks' 's|/Formula/|/|' '^homebrew/core'
local sed_extended_regex_flag
if [[ -n "$HOMEBREW_MACOS" ]]; then
sed_extended_regex_flag="-E"
else
sed_extended_regex_flag="-r"
fi
formulae="$( \
find "$HOMEBREW_REPOSITORY/Library/Taps" \
-type d \( \
-name Casks -o \
-name cmd -o \
-name .github -o \
-name lib -o \
-name spec -o \
-name vendor \
\) \
-prune -false -o -name '*\.rb' | \
sed "$sed_extended_regex_flag" \
-e 's/\.rb//g' \
-e 's_.*/Taps/(.*)/(home|linux)brew-_\1/_' \
-e 's|/Formula/|/|' \
)"
local shortnames
shortnames="$(echo "$formulae" | cut -d "/" -f 3)"
echo -e "$formulae\n$shortnames" | \
grep -v '^homebrew/core' | \
sort -uf
} }

35
Library/Homebrew/items.sh Normal file
View File

@ -0,0 +1,35 @@
homebrew-items() {
local items
local sed_extended_regex_flag
local find_filter=$1
local sed_filter=$2
local grep_filter=$3
if [[ -n "$HOMEBREW_MACOS" ]]; then
sed_extended_regex_flag="-E"
else
sed_extended_regex_flag="-r"
fi
items="$( \
find "$HOMEBREW_REPOSITORY/Library/Taps" \
-type d \( \
-name "$find_filter" -o \
-name cmd -o \
-name .github -o \
-name lib -o \
-name spec -o \
-name vendor \
\) \
-prune -false -o -name '*\.rb' | \
sed "$sed_extended_regex_flag" \
-e 's/\.rb//g' \
-e 's_.*/Taps/(.*)/(home|linux)brew-_\1/_' \
-e "$sed_filter" \
)"
local shortnames
shortnames="$(echo "$items" | cut -d "/" -f 3)"
echo -e "$items\n$shortnames" | \
grep -v "$grep_filter" | \
sort -uf
}

View File

@ -655,12 +655,9 @@ __brew_caskcomp ()
__brew_cask_complete_formulae () __brew_cask_complete_formulae ()
{ {
local cur="${COMP_WORDS[COMP_CWORD]}" local cur="${COMP_WORDS[COMP_CWORD]}"
local lib=$(brew --repository)/Library local casks=$(brew casks)
local taps=${lib}/Taps
local casks=${lib}/Taps/homebrew/homebrew-cask/Casks
local ff=$(\ls ${casks} 2>/dev/null | \sed 's/\.rb//g')
COMPREPLY=($(compgen -W "$ff" -- "$cur")) COMPREPLY=($(compgen -W "$casks" -- "$cur"))
} }
__brew_cask_complete_installed () __brew_cask_complete_installed ()

View File

@ -206,7 +206,7 @@ function __fish_brew_suggest_casks_outdated -d "Lists outdated casks with the in
end end
function __fish_brew_suggest_casks_all -d "Lists locally available casks" function __fish_brew_suggest_casks_all -d "Lists locally available casks"
brew search --cask brew casks
end end

View File

@ -20,6 +20,7 @@ bump-formula-pr
bump-revision bump-revision
bump-unversioned-casks bump-unversioned-casks
cask cask
casks
cat cat
cleanup cleanup
command command

View File

@ -18,7 +18,7 @@ __brew_all_casks() {
local comp_cachename=brew_casks local comp_cachename=brew_casks
if ! _retrieve_cache $comp_cachename; then if ! _retrieve_cache $comp_cachename; then
list=( $(brew search --cask) ) list=( $(brew casks) )
_store_cache $comp_cachename list _store_cache $comp_cachename list
fi fi

View File

@ -65,6 +65,10 @@ Uninstall formulae that were only installed as a dependency of another formula a
* `-n`, `--dry-run`: * `-n`, `--dry-run`:
List what would be uninstalled, but do not actually uninstall anything. List what would be uninstalled, but do not actually uninstall anything.
### `casks`
List all locally installable casks including short names.
### `cleanup` [*`options`*] [*`formula`*|*`cask`*] ### `cleanup` [*`options`*] [*`formula`*|*`cask`*]
Remove stale lock files and outdated downloads for all formulae and casks, Remove stale lock files and outdated downloads for all formulae and casks,

View File

@ -60,6 +60,9 @@ Uninstall formulae that were only installed as a dependency of another formula a
\fB\-n\fR, \fB\-\-dry\-run\fR \fB\-n\fR, \fB\-\-dry\-run\fR
List what would be uninstalled, but do not actually uninstall anything\. List what would be uninstalled, but do not actually uninstall anything\.
. .
.SS "\fBcasks\fR"
List all locally installable casks including short names\.
.
.SS "\fBcleanup\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR]" .SS "\fBcleanup\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR]"
Remove stale lock files and outdated downloads for all formulae and casks, and remove old versions of installed formulae\. If arguments are specified, only do this for the given formulae and casks\. Removes all downloads more than 120 days old\. This can be adjusted with \fBHOMEBREW_CLEANUP_MAX_AGE_DAYS\fR\. Remove stale lock files and outdated downloads for all formulae and casks, and remove old versions of installed formulae\. If arguments are specified, only do this for the given formulae and casks\. Removes all downloads more than 120 days old\. This can be adjusted with \fBHOMEBREW_CLEANUP_MAX_AGE_DAYS\fR\.
. .