diff --git a/Library/Homebrew/cmd/casks.sh b/Library/Homebrew/cmd/casks.sh index 64113d1f4a..4a8d866f45 100644 --- a/Library/Homebrew/cmd/casks.sh +++ b/Library/Homebrew/cmd/casks.sh @@ -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' } diff --git a/Library/Homebrew/cmd/formulae.sh b/Library/Homebrew/cmd/formulae.sh index e2f803724d..eee27c9629 100644 --- a/Library/Homebrew/cmd/formulae.sh +++ b/Library/Homebrew/cmd/formulae.sh @@ -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' } diff --git a/Library/Homebrew/items.sh b/Library/Homebrew/items.sh new file mode 100644 index 0000000000..6edf44dfc6 --- /dev/null +++ b/Library/Homebrew/items.sh @@ -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 +}