Add homebrew-items

This commit is contained in:
Kid 2021-01-08 18:04:51 +08:00
parent c57b65fdb8
commit 9b9c0c8626
3 changed files with 41 additions and 52 deletions

View File

@ -3,27 +3,8 @@
#: List all locally installable casks including short names.
#:
source "$HOMEBREW_LIBRARY/Homebrew/items.sh"
homebrew-casks() {
local casks
local sed_extended_regex_flag
if [[ -n "$HOMEBREW_MACOS" ]]; then
sed_extended_regex_flag="-E"
else
sed_extended_regex_flag="-r"
fi
casks="$( \
find "$HOMEBREW_REPOSITORY/Library/Taps" \
-maxdepth 4 -path '*/Casks/*.rb' | \
sed "$sed_extended_regex_flag" \
-e 's/\.rb//g' \
-e 's_.*/Taps/(.*)/(home|linux)brew-_\1/_' \
-e 's|/Casks/|/|' \
)"
local shortnames
shortnames="$(echo "$casks" | cut -d "/" -f 3)"
echo -e "$casks\n$shortnames" | \
grep -v '^homebrew/cask' | \
sort -uf
homebrew-items 'Formula' 's|/Casks/|/|' '^homebrew/cask'
}

View File

@ -3,35 +3,8 @@
#: List all locally installable formulae including short names.
#:
source "$HOMEBREW_LIBRARY/Homebrew/items.sh"
homebrew-formulae() {
local formulae
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
homebrew-items 'Casks' 's|/Formula/|/|' '^homebrew/core'
}

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
}