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