home *** CD-ROM | disk | FTP | other *** search
- # 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
-