blob: 6c274567e204fc9f021b06d1a37e407e702b28dc (
plain) (
tree)
|
|
#!/usr/bin/env bash
_conf()
{
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
local commands="add ls list search edit cat relink grep help version"
if [[ $COMP_CWORD -gt 1 ]]; then
local lastarg="${COMP_WORDS[$COMP_CWORD-1]}"
case "${COMP_WORDS[1]}" in
l|ls|list)
if [[ $lastarg == "-g" ]]; then
COMPREPLY=($(compgen -W "$(conf ls -G)" -- ${cur}))
else
COMPREPLY=($(compgen -W "$(conf ls -h 2>&1 | awk -F' ' '{print $1}')" -- ${cur}))
fi
;;
add|a)
if [[ $lastarg == "-g" ]]; then
COMPREPLY=($(compgen -W "$(conf ls -G)" -- ${cur}))
else
COMPREPLY=($(compgen -f -- ${cur}))
fi
;;
edit|e|editg|eg|cat|c)
COMPREPLY=($(compgen -W "$(conf ls -G) \
$(conf ls -l | xargs -If basename f) \
$(for g in $(conf ls -G); do \
conf ls -g $g | xargs -If basename f | sed -e "s#^#${g}/#"; \
done)" -- ${cur}))
;;
relink)
COMPREPLY=($(compgen -W "-t --test $(conf ls -G)" -- ${cur}))
;;
esac
else
COMPREPLY=($(compgen -W "${commands}" -- ${cur}))
fi
}
complete -F _conf conf
|