1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 21:44:11 +01:00
zsh/Completion/User/_prcs
2000-01-05 13:30:17 +00:00

204 lines
7.4 KiB
Plaintext

#compdef prcs
# lookup project names in the repository
# (this does not handle subprojects)
(( $+functions[_prcs_projects] )) ||
_prcs_projects() {
compadd $@ - ${opt_args[-R]:-${opt_args[--repository]:-${PRCS_REPOSITORY:-$HOME/PRCS}}}/*(/:t)
}
# standard options for all subcommands
(( $+functions[_prcs_arguments] )) ||
_prcs_arguments() {
_arguments -s \
'(-f)--force[resolve interactive queries in some fixed way]' \
'(--force)-f[resolve interactive queries in some fixed way]' \
'(-h -H)--help[print out help]' \
'(--help -H)-h[print out help]' \
'(--help -h)-H[print out help]' \
'(-j)--jobs=[spawn many child processes at once]:number:' \
'(--jobs)-j[spawn many child processes at once]:number:' \
'(-l)--long-format[long format]' \
'(--long-format)-l[long format]' \
'(-L)--long-long-format[long format]' \
'(--long-long-format)-L[longer format]' \
'(-n)--no-action[no action]' \
'(--no-action)-n[no action]' \
'(-q)--quiet[suppress normal informational messages]' \
'(--quiet)-q[suppress normal informational messages]' \
"--plain-format[don't break lines at screen width]" \
'(-R)--repository=[set the repository directory]:directory:_files -/' \
'(--repository)-R[set the repository directory]:directory:_files -/' \
'(-v)--version[print PRCS version and exits]' \
'(--version)-v[print PRCS version and exits]' \
$@
}
if (( CURRENT == 2 )); then
_arguments \
':prcs command:((
admin\:"admin subcommand"
checkin\:"checkin project revision"
checkout\:"checkout project revision"
config\:"verify configuration"
delete\:"delete named revision of project"
depopulate\:"remove named files from project descriptor"
diff\:"show differences between two revisions"
execute\:"execute a command for each file in a project"
info\:"print information about versions of project"
merge\:"reconcile differences between working files and another revision"
package\:"package the project and all its revisions into packagefile"
populate\:"add named files to project descriptor"
rekey\:"set keywords in selected files"
unpackage\:"unpackage project in packagefile"))'
else
shift words
(( --CURRENT ))
case "$words[1]" in
admin)
if (( CURRENT == 2 )); then
_arguments \
':admin subcommand:((
access\:"set the access permissions on the repository"
compress\:"instruct PRCS to save disk space for project"
init\:"create a repository entry"
pdelete\:"delete a repository entry"
prename\:"rename a repository entry"
rebuild\:"reconstruct PRCS data files in the repository"
uncompress\:"instruct PRCS to save time in processing project"))'
else
shift words
(( --CURRENT ))
case "$words[1]" in
access|compress|init|pdelete|prename|rebuild)
_prcs_arguments ':project name:_prcs_projects'
;;
uncompress)
_prcs_arguments \
'-i[expand the entire project immediately]' \
':project name:_prcs_projects'
;;
esac
fi
;;
checkin)
_prcs_arguments \
'(-r)--revison=[version of the project]:revision:' \
'(--revison)-r[version of the project]:revision:' \
'(-s)--skilled-merge[turn off most of the safety features of merge]' \
'(--skilled-merge)-s[turn off most of the safety features of merge]' \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
checkout)
_prcs_arguments \
'(-r)--revison=[version of the project]:revision:' \
'(--revison)-r[version of the project]:revision:' \
'(-p)--preserve[preserve permissions on files that are checked out]' \
'(--preserve)-p[preserve permissions on files that are checked out]' \
"(-u)--unlink[don't overwrite symbolic link references]" \
"(--unlink)-u[don't overwrite symbolic link references]" \
"(-P)--exclude-project-file[don't checkout the project file]" \
"(--exclude-project-file)-P[don't checkout the project file]" \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
config)
_prcs_arguments
;;
delete)
_prcs_arguments \
'(-r)--revison=[version of the project]:reversion:' \
'(--revison)-r[version of the project]:reversion:' \
':project name:_prcs_projects'
;;
depopulate)
_prcs_arguments \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
diff)
#
# FIXME: when there will be a _diff completion function,
# we should complete with diff options after `--' :
# prcs diff [OPTION ...] [PROJECT [FILE-OR-DIR ...]] [-- [DIFF-OPTION ...]]
#
_prcs_arguments \
'*--revison=[version of the project]:revision:' \
'*-r[version of the project]:revision:' \
'(-k)--keywords[compare keywords too]' \
'(--keywords)-k[compare keywords too]' \
'(-N)--new[compare new files against empty files]' \
'(--new)-N[compare new files against empty files]' \
"(-P)--exclude-project-file[don't diff the project file]" \
"(--exclude-project-file)-P[don't diff the project file]" \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
execute)
_prcs_arguments \
'(-r)--revison=[version of the project]:reversion:' \
'(--revison)-r[version of the project]:reversion:' \
'--pre[list directories first]' \
'(--pipe)--all[execute command once, with all files as arguments]' \
'(--all)--pipe[supply file contents as the standard input]' \
'--match[execute command on files matching a pattern]:pattern:' \
'--not[execute command on files not matching a pattern]:pattern:' \
'--:command: _command_names -e:*::arguments: _normal' \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
info)
_prcs_arguments \
'(-r)--revison=[version of the project]:revision:' \
'(--revison)-r[version of the project]:revision:' \
'--sort=[set sorting type]:sorting type:(version date)' \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
merge)
_prcs_arguments \
'(-r)--revison=[version of the project]:revision:' \
'(--revison)-r[version of the project]:revision:' \
'(-s)--skilled-merge[turn off most of the safety features of merge]' \
'(--skilled-merge)-s[turn off most of the safety features of merge]' \
"(-u)--unlink[don't overwrite symbolic link references]" \
"(--unlink)-u[don't overwrite symbolic link references]" \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
package)
_prcs_arguments \
'(-r)--revison=[version of the project]:revision:' \
'(--revison)-r[version of the project]:revision:' \
'(-z)--compress=[compress the output]' \
'(--compress)-z[compress the output]' \
':project name:_prcs_projects' \
':file:_files'
;;
populate)
_prcs_arguments \
'(-d)--delete=[perform optional deletions]' \
'(--delete)-d[perform optional deletions]' \
':project name:_prcs_projects' \
'*:file or directory:_files'
;;
rekey)
_prcs_arguments \
"(-u)--unlink[don't overwrite symbolic link references]" \
"(--unlink)-u[don't overwrite symbolic link references]" \
':project name:_prcs_projects'
;;
unpackage)
_prcs_arguments \
':file:_files' \
':project name:_prcs_projects'
;;
*)
_message "unknown prcs command: $words[2]"
;;
esac
fi