# Perforce completion -*- shell-script -*- # by Frank Cusack proc _p4 { var cur = '', prev = '', words = '', cword = '' _init_completion || return var p4commands = '', p4filetypes = '' # rename isn't really a command set p4commands = $[ p4 help commands !2 >/dev/null | awk 'NF>3 {print $1}] set p4filetypes = '"ctext cxtext ktext kxtext ltext tempobj ubinary \ uresource uxbinary xbinary xltext xtempobj xtext \ text binary resource'" if [[ $cword -eq 1 ]] { setglobal COMPREPLY = '( '$( compgen -W "$p4commands" -- "$cur" ) ) } elif [[ $cword -eq 2 ]] { match $prev { with help setglobal COMPREPLY = '( '$( compgen -W "simple commands environment filetypes jobview revisions usage views $p4commands" \ -- "$cur" ) ) with admin setglobal COMPREPLY = '( '$( compgen -W "checkpoint stop" -- "$cur" ) ) with * } } elif [[ $cword -gt 2 ]] { match $prev { with -t match $(words[$cword-2]) { with add|edit|reopen setglobal COMPREPLY = '( '$( compgen -W "$p4filetypes" -- "$cur" ) ) with * } with * } } return 0 } && complete -F _p4 -o default p4 g4 # ex: ts=4 sw=4 et filetype=sh