# - PERFORCE {{{ - _p4commands() { p4 help commands | sed -re "s/^\t+(\w+)\s+.+/\1/" | sed -re "s/^\s.*//" } _p4opened() { p4 opened 2>/dev/null | sed -rn 's/.*\/(.*\..*)#.*/\1/p' } _complete_p4(){ local cur cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in p4|perf) COMPREPLY=( $(_p4commands | grep -E "^$cur") );; diff|revert|pd) COMPREPLY=( $(_p4opened | grep -E "^$cur") );; add|delete|edit|pe) #COMPREPLY=( $(ls | grep -v "$(p4opened | sed 's/\n/\|/')"));; COMPREPLY=( $(uniq -u \ <( sort <(ls) <(_p4opened) ) \ | grep -E "^$cur" ) );; *) COMPREPLY=( $( compgen -f ${COMP_WORDS[COMP_CWORD]} ) );; esac return 0 } complete -F _complete_p4 p4 perf pe pd # - }}} -