local pkgpath if (( $# == 1 )); then pkgpath="$1" else echo >&2 "Usage: $0 PATH" echo >&2 echo >&2 "psd stands for \"pkgsrc pushd\", alias to pushd \${PKGSRCDIR}/\${PATH}" return 1 fi local pkgsrcdir if [[ -n "${PKGSRCDIR}" ]]; then pkgsrcdir="${PKGSRCDIR}" else local -a candidates=( "/usr/pkgsrc" "/opt/pkgsrc" ) local dir for dir in "${candidates[@]}"; do if [[ -d "$dir" ]]; then pkgsrcdir="$dir" break fi done if [[ -z "$pkgsrcdir" ]]; then echo >&2 "PKGSRCDIR not detected" return 1 fi fi pushd "${pkgsrcdir}/${pkgpath}" # Local Variables: # mode: sh # sh-shell: zsh # End: