# bash completion for FreeBSD portupgrade package have portupgrade && _portupgrade() { local cur pkgdir prev pkgdir=${PKG_DBDIR:-/var/db/pkg}/ _get_comp_words_by_ref cur prev [[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0 COMPREPLY=( $( compgen -d "$pkgdir$cur" ) ) COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) COMPREPLY=( ${COMPREPLY[@]%-*} ) return 0 } && complete -F _portupgrade -o dirnames portupgrade have portinstall && _portinstall() { local cur portsdir prev indexfile local -a COMPREPLY2 portsdir=${PORTSDIR:-/usr/ports}/ _get_comp_words_by_ref cur prev # First try INDEX-5 indexfile=$portsdir/INDEX-5 # Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x [[ "${OSTYPE%.*}" == freebsd5 && -f $indexfile ]] || indexfile=$portsdir/INDEX [[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0 COMPREPLY=( $( command grep -E "^$cur" < $indexfile | cut -d'|' -f1 ) ) COMPREPLY2=( $( command grep -E "^[^\|]+\|$portsdir$cur" < $indexfile | \ cut -d'|' -f2 ) ) COMPREPLY2=( ${COMPREPLY2[@]#$portsdir} ) COMPREPLY=( "${COMPREPLY[@]}" "${COMPREPLY2[@]}" ) return 0 } && complete -F _portinstall -o dirnames portinstall # _pkg_delete is in pkg_install type _pkg_delete &>/dev/null && have pkg_deinstall && \ complete -F _pkg_delete -o dirnames pkg_deinstall # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh