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 | ||
|  | } |