aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-01-05 13:30:17 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-01-05 13:30:17 +0000
commit04dfb080a546b730fd21b892b7247656bd135f48 (patch)
tree765aa6f7b17fbab77372b435f53965b9a1e5f27d
parent15231c290ac80474faf0b84d2f1537c2a62825a9 (diff)
downloadzsh-04dfb080a546b730fd21b892b7247656bd135f48.tar.gz
zsh-04dfb080a546b730fd21b892b7247656bd135f48.tar.xz
zsh-04dfb080a546b730fd21b892b7247656bd135f48.zip
Initial revision
-rw-r--r--Completion/User/_prcs203
1 files changed, 203 insertions, 0 deletions
diff --git a/Completion/User/_prcs b/Completion/User/_prcs
new file mode 100644
index 000000000..30c76e791
--- /dev/null
+++ b/Completion/User/_prcs
@@ -0,0 +1,203 @@
+#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