mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
63 lines
1.7 KiB
Bash
63 lines
1.7 KiB
Bash
# pkgadd completion -*- shell-script -*-
|
|
#
|
|
# Copyright 2006 Yann Rouillard <yann@opencsw.org>
|
|
|
|
_pkgadd()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion -n : || return
|
|
|
|
# if a device directory was given
|
|
# we must complete with the package
|
|
# available in this directory
|
|
local device=/var/spool/pkg
|
|
local i=$cword
|
|
while ((i-- > 0)); do
|
|
case "${words[i]}" in
|
|
-d)
|
|
device="${words[i + 1]}"
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case $prev in
|
|
-d)
|
|
_filedir pkg
|
|
_filedir -d
|
|
;;
|
|
-a | -r | -V)
|
|
_filedir
|
|
;;
|
|
-k | -s | -R)
|
|
_filedir -d
|
|
;;
|
|
-P | -x) ;;
|
|
|
|
*)
|
|
if [[ ${cur} == -* ]]; then
|
|
local opts="-a -A -d -k -n -M -P -r -R -s -v -V -x"
|
|
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
|
|
else
|
|
local pkginst_list
|
|
if [[ -d $device ]]; then
|
|
local -a tmplist
|
|
for filedir in $(/bin/ls -1 $device); do
|
|
if [[ -d "$device/$filedir" ]] && [[ -f "$device/$filedir/pkginfo" ]]; then
|
|
tmplist+=(${tmplist[@]:-} "$filedir")
|
|
fi
|
|
done
|
|
pkginst_list="${tmplist[*]}"
|
|
else
|
|
pkginst_list="$(strings "$(dequote $device)" |
|
|
command grep ^PKG= | sort -u | cut -d= -f2)"
|
|
fi
|
|
COMPREPLY=($(compgen -W "$pkginst_list" -- ${cur}))
|
|
fi
|
|
;;
|
|
esac
|
|
} &&
|
|
complete -F _pkgadd pkgadd
|
|
|
|
# ex: filetype=sh
|