From 4f49b16079b27d7ce633619e4cddfdf2bffbc952 Mon Sep 17 00:00:00 2001 From: cashmere Date: Fri, 4 Sep 2026 09:05:24 +0200 Subject: initial commit --- tools/fossil-autocomplete.zsh | 3529 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3529 insertions(+) create mode 100755 tools/fossil-autocomplete.zsh (limited to 'tools/fossil-autocomplete.zsh') diff --git a/tools/fossil-autocomplete.zsh b/tools/fossil-autocomplete.zsh new file mode 100755 index 0000000..0c34951 --- /dev/null +++ b/tools/fossil-autocomplete.zsh @@ -0,0 +1,3529 @@ +#compdef fossil +# Origin: https://chiselapp.com/user/lifepillar/repository/fossil-zsh-completion +################################################################################# +# # +# Copyright 2020 Lifepillar # +# # +# Permission is hereby granted, free of charge, to any person obtaining a copy # +# of this software and associated documentation files (the "Software"), to deal # +# in the Software without restriction, including without limitation the rights # +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # +# copies of the Software, and to permit persons to whom the Software is # +# furnished to do so, subject to the following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # +# SOFTWARE. # +# # +################################################################################# + +# To reload the completion function after it has been modified: +# +# $ unfunction _fossil +# $ autoload -U _fossil +# +# See also: http://zsh.sourceforge.net/Doc/Release/Completion-System.html +# See also: https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org + +################################################################################ +# Functions that help build this completion file # +################################################################################ + +# This function can be used to generate scaffolding code for the options of all +# the commands. Copy and paste the result at the suitable spot in this script +# to update it. To parse all commands: +# +# __fossil_parse_help -a +# +# To parse all test commands: +# +# __fossil_parse_help -t +# +# NOTE: The code must be adapted manually. Diff with previous version! +function __fossil_parse_help() { + echo ' case "$words[1]" in' + for c in `fossil help $1 | xargs -n1 | sort`; + do + echo " ($c)" + echo ' _arguments \\' + __fossil_format_options $c; + echo " '(- *)'--help'[Show help and exit]' \\" + echo " '*:files:_files'" + echo '' + echo ' ;;' + done; + echo ' esac' + echo ' ;;' +} + +# Extract the options of a command and format it in a way that can be used in +# a ZSH completion script. +# Use `__fossil_format_options -o` to extract the common options. +function __fossil_format_options() { + fossil help $1 2>&1 \ + | grep '^\s\{1,3\}-' \ + | sed -E 's/^ +//' \ + | awk -F ' +' '{ + v=match($1,/\|/) + split($1,y,"|") + printf " " + if (v>0) + printf "\"(--help %s %s)\"{%s,%s}",y[1],y[2],y[1],y[2]; + else + printf "\"(--help %s)\"%s",y[1],y[1]; + $1="" + gsub(/^ +| +$/,"",$0); + gsub(/^ +| +$/,"",$0); + gsub(/\x27/,"\x27\"\x27\"\x27",$0); + print "\x27["$0"]\x27 \\"; + }' +} + + +################################################################################ +# Helper functions used for completion. # +################################################################################ + +function __fossil_commands() { + fossil help --all +} + +function __fossil_test_commands() { + fossil help --test +} + +function __fossil_all_commands() { + __fossil_commands + __fossil_test_commands +} + +function __fossil_users() { + fossil user ls 2>/dev/null | awk '{print $1}' +} + +function __fossil_branches() { + fossil branch ls -a 2>/dev/null | sed 's/\* *//' +} + +function __fossil_tags() { + fossil tag ls 2>/dev/null +} + +function __fossil_repos() { + ls | grep .fossil + fossil all ls 2>/dev/null +} + +function __fossil_remotes() { + fossil remote list 2>/dev/null | awk '{print $1}' +} + +function __fossil_wiki_pages() { + fossil wiki list 2>/dev/null +} + +function __fossil_areas() { + compadd all email project shun skin ticket user alias subscriber + return 0 +} + +function __fossil_settings() { + fossil help --setting +} + +function __fossil_urls() { + local u + u=($(__fossil_remotes)) + compadd -a u + compadd -S '' file:// http:// https:// ssh:// + return 0 +} + +################################################################################ +# Main # +################################################################################ + +function _fossil() { + local context state state_descr line + typeset -A opt_args + + local -a _common_options + # Scaffolding code for common options can be generated with `__fossil_format_options -o`. + _common_options=( + "(--help --args)"--args'[FILENAME Read additional arguments and options from FILENAME]:file:_files' + "(--help --cgitrace)"--cgitrace'[Active CGI tracing]' + "(--help --comfmtflags --comment-format)"--comfmtflags'[VALUE Set comment formatting flags to VALUE]:value:' + "(--help --comment-format --comfmtflags)"--comment-format'[VALUE Alias for --comfmtflags]:value:' + "(--help --errorlog)"--errorlog'[FILENAME Log errors to FILENAME]:file:_files' + "(- -? --help)"{-?,--help}'[Show help on the command rather than running it]' + "(--help --httptrace)"--httptrace'[Trace outbound HTTP requests]' + "(--help --localtime)"--localtime'[Display times using the local timezone]' + "(--help --no-th-hook)"--no-th-hook'[Do not run TH1 hooks]' + "(--help --quiet)"--quiet'[Reduce the amount of output]' + "(--help --sqlstats)"--sqlstats'[Show SQL usage statistics when done]' + "(--help --sqltrace)"--sqltrace'[Trace all SQL commands]' + "(--help --sshtrace)"--sshtrace'[Trace SSH activity]' + "(--help --ssl-identity)"--ssl-identity'[NAME Set the SSL identity to NAME]:name:' + "(--help --systemtrace)"--systemtrace'[Trace calls to system()]' + "(--help --user -U)"{--user,-U}'[USER Make the default user be USER]:user:($(__fossil_users))' + "(--help --utc)"--utc'[Display times using UTC]' + "(--help --vfs)"--vfs'[NAME Cause SQLite to use the NAME VFS]:name:' + ) + + local -a _fossil_clean_options + _fossil_clean_options=( + "(--help --allckouts)"--allckouts'[Check for empty directories within any checkouts]' + "(--help --case-sensitive)"--case-sensitive'[BOOL Override case-sensitive setting]:bool:(yes no)' + "(--help --dirsonly)"--dirsonly'[Only remove empty directories]' + "(--help --disable-undo)"--disable-undo'[Disables use of the undo]' + "(--help --dotfiles)"--dotfiles'[Include files beginning with a dot (".")]' + "(--help --emptydirs)"--emptydirs'[Remove empty directories]' + "(--help -f --force)"{-f,--force}'[Remove files without prompting]' + "(--help -i --prompt)"{-i,--prompt}'[Prompt before removing each file]' + "(--help -x --verily)"{-x,--verily}'[Remove everything that is not managed]' + "(--help --clean)"--clean'[CSG Never prompt to delete files matching CSG glob pattern]:pattern:' + "(--help --ignore)"--ignore'[CSG Ignore files matching CSG glob pattern]:pattern:' + "(--help --keep)"--keep'[CSG Keep files matching CSG glob pattern]:pattern:' + "(--help -n --dry-run)"{-n,--dry-run}'[Delete nothing, but display what would have been deleted]' + "(--help --no-prompt)"--no-prompt'[Assume NO for every question]' + "(--help --temp)"--temp'[Remove only Fossil-generated temporary files]' + "(--help -v --verbose)"{-v,--verbose}'[Show all files as they are removed]' + ) + + local -a _fossil_rebuild_options + _fossil_rebuild_options=( + "(--help --analyze)"--analyze'[Run ANALYZE on the database after rebuilding]' + "(--help --cluster)"--cluster'[Compute clusters for unclustered artifacts]' + "(--help --compress)"--compress'[Strive to make the database as small as possible]' + "(--help --compress-only)"--compress-only'[Skip the rebuilding step. Do --compress only]' + "(--help --deanalyze)"--deanalyze'[Remove ANALYZE tables from the database]' + "(--help --ifneeded)"--ifneeded'[Only do the rebuild if it would change the schema version]' + "(--help --index)"--index'[Always add in the full-text search index]' + "(--help --noverify)"--noverify'[Skip the verification of changes to the BLOB table]' + "(--help --noindex)"--noindex'[Always omit the full-text search index]' + "(--help --pagesize)"--pagesize'[N Set the database pagesize to N. (512..65536 and power of 2)]:number:' + "(--help --quiet)"--quiet'[Only show output if there are errors]' + "(--help --stats)"--stats'[Show artifact statistics after rebuilding]' + "(--help --vacuum)"--vacuum'[Run VACUUM on the database after rebuilding]' + "(--help --wal)"--wal'[Set Write-Ahead-Log journalling mode on the database]' + ) + + local -a _fossil_dbstat_options + _fossil_dbstat_options=( + "(--help --brief -b)"{--brief,-b}'[Only show essential elements]' + "(--help --db-check)"--db-check'[Run "PRAGMA quick_check" on the repository database]' + "(--help --db-verify)"--db-verify'[Run a full verification of the repository integrity]' + "(--help --omit-version-info)"--omit-version-info'[Omit the SQLite and Fossil version information]' + ) + + local -a _fossil_diff_options + _fossil_diff_options=( + "(--help --binary)"--binary'[PATTERN Treat files that match the glob PATTERN as binary]:pattern:' + "(--help --branch)"--branch'[BRANCH Show diff of all changes on BRANCH]:branch:($(__fossil_branches))' + "(--help --brief)"--brief'[Show filenames only]' + "(--help --checkin)"--checkin'[VERSION Show diff of all changes in VERSION]:version:' + "(--help --command)"--command'[PROG External diff program - overrides "diff-command"]:program:' + "(--help --context -c)"{--context,-c}'[N Use N lines of context]:number:' + "(--help --diff-binary)"--diff-binary'[BOOL Include binary files when using external commands]:bool:(yes no)' + "(--help --exec-abs-paths)"--exec-abs-paths'[Force absolute path names with external commands]' + "(--help --exec-rel-paths)"--exec-rel-paths'[Force relative path names with external commands]' + "(--help --from -r)"{--from,-r}'[VERSION Select VERSION as source for the diff]:version:' + "(--help --internal -i)"{--internal,-i}'[Use internal diff logic]' + "(--help --new-file -N)"{--new-file,-N}'[Show complete text of added and deleted files]' + "(--help --numstat)"--numstat'[Show only the number of lines delete and added]' + "(--help --side-by-side -y)"{--side-by-side,-y}'[Side-by-side diff]' + "(--help --strip-trailing-cr)"--strip-trailing-cr'[Strip trailing CR]' + "(--help --tclsh)"--tclsh'[PATH Tcl/Tk used for --tk (default: "tclsh")]' + "(--help --tk)"--tk'[Launch a Tcl/Tk GUI for display]' + "(--help --to)"--to'[VERSION Select VERSION as target for the diff]:version:' + "(--help --undo)"--undo'[Diff against the "undo" buffer]' + "(--help --unified)"--unified'[Unified diff]' + "(--help -v --verbose)"{-v,--verbose}'[Output complete text of added or deleted files]' + "(--help -w --ignore-all-space)"{-w,--ignore-all-space}'[Ignore white space when comparing lines]' + "(--help -W --width)"{-W,--width}'[NUM Width of lines in side-by-side diff]:number:' + "(--help -Z --ignore-trailing-space)"{-Z,--ignore-trailing-space}'[Ignore changes to end-of-line whitespace]' + ) + + local -a _fossil_extras_options + _fossil_extras_options=( + "(--help --abs-paths)"--abs-paths'[Display absolute pathnames]' + "(--help --case-sensitive)"--case-sensitive'[BOOL Override case-sensitive setting]:bool:(yes no)' + "(--help --dotfiles)"--dotfiles'[Include files beginning with a dot (".")]' + "(--help --header)"--header'[Identify the repository if there are extras]' + "(--help --ignore)"--ignore'[CSG Ignore files matching patterns from the argument]:pattern:' + "(--help --rel-paths)"--rel-paths'[Display pathnames relative to the current working]' + ) + + local -a _fossil_server_options + _fossil_server_options=( + "(--help --baseurl)"--baseurl'[URL Use URL as the base]:url:__fossil_urls' + "(--help --create)"--create'[Create a new REPOSITORY if it does not already exist]' + "(--help --extroot)"--extroot'[DIR Document root for the /ext extension mechanism]:directory:_files -/' + "(--help --files)"--files'[GLOBLIST Comma-separated list of glob patterns for static files]:pattern:' + "(--help --localauth)"--localauth'[Enable automatic login for requests from localhost]' + "(--help --localhost)"--localhost'[Listen on 126.0.0.1 only]' + "(--help --https)"--https'[Input passes through a reverse HTTPS->HTTP proxy]' + "(--help --jsmode)"--jsmode'[MODE Determine how JavaScript is delivered with pages]:mode:(inline separate bundled)' + "(--help --max-latency)"--max-latency'[N Do not let any single HTTP request run for more than N seconds]:number:' + "(--help --nocompress)"--nocompress'[Do not compress HTTP replies]' + "(--help --nojail)"--nojail'[Drop root privileges but do not enter the chroot jail]' + "(--help --nossl)"--nossl'[Signal that no SSL connections are available]' + "(--help --notfound)"--notfound'[URL Redirect]:url:__fossil_urls' + "(--help --page)"--page'[PAGE Start "ui" on PAGE. ex: --page "timeline?y=ci"]:number:' + "(--help -P --port)"{-P,--port}'[TCPPORT Listen to request on port TCPPORT]:number:' + "(--help --th-trace)"--th-trace'[Trace TH0 execution (for debugging purposes)]' + "(--help --repolist)"--repolist'[If REPOSITORY is dir, URL "/" lists repos]' + "(--help --scgi)"--scgi'[Accept SCGI rather than HTTP]' + "(--help --skin)"--skin'[LABEL Use override skin LABEL]:label:' + "(--help --usepidkey)"--usepidkey'[Use saved encryption key from parent process]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:command:->command' \ + '*::args:->args' + + case $state in + (command) + if [[ $line =~ '^te' ]]; then + _arguments '*:test commands:($(__fossil_test_commands))' + else + _arguments '*:commands:($(__fossil_commands))' + fi + ;; + (args) + if [[ $line[1] =~ '^test-' ]]; then + __fossil_complete_test_commands + return 0 + fi + + case $line[1] in + (3-way-merge) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (add) + _arguments \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override the case-sensitive setting]:bool:(yes no)' \ + "(--help --dotfiles)"--dotfiles'[include files beginning with a dot (".")]' \ + "(--help -f --force)"{-f,--force}'[Add files without prompting]' \ + "(--help --ignore)"--ignore'[CSG Ignore unmanaged files matching Comma Separated Glob]:pattern:' \ + "(--help --clean)"--clean'[CSG Also ignore files matching Comma Separated Glob]:pattern:' \ + "(--help --reset)"--reset'[Reset the ADDED state of a checkout]' \ + "(--help -v --verbose)"{-v,--verbose}'[Outputs information about each --reset file]' \ + "(--help -n --dry-run)"{-n,--dry-run}'[Display instead of run actions]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (addremove) + _arguments \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override the case-sensitive setting]:bool:(yes no)' \ + "(--help --dotfiles)"--dotfiles'[Include files beginning with a dot (".")]' \ + "(--help --ignore)"--ignore'[CSG Ignore unmanaged files matching Comma Separated Glob]:pattern:' \ + "(--help --clean)"--clean'[CSG Also ignore files matching Comma Separated Glob]:pattern:' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + "(--help --reset)"--reset'[Reset the ADDED/DELETED state of a checkout]' \ + "(--help --verbose -v)"{--verbose,-v}'[Outputs information about each --reset file]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (alerts) + __fossil_alerts + + ;; + (all) + __fossil_all + + ;; + (amend) + _arguments \ + ':hash:' \ + "(--help --author)"--author'[USER Make USER the author for check-in]:user:($(__fossil_users))' \ + "(--help -m --comment)"{-m,--comment}'[COMMENT Make COMMENT the check-in comment]:comment:' \ + "(--help -M --message-file)"{-M,--message-file}'[FILE Read the amended comment from FILE]:file:_files' \ + "(--help -e --edit-comment)"{-e,--edit-comment}'[Launch editor to revise comment]' \ + "(--help --date)"--date'[DATETIME Make DATETIME the check-in time]:datetime:(now)' \ + "(--help --bgcolor)"--bgcolor'[COLOR Apply COLOR to this check-in]:color:' \ + "(--help --branchcolor)"--branchcolor'[COLOR Apply and propagate COLOR to the branch]:color:' \ + "(--help --tag)"--tag'[TAG Add new TAG to this check-in]:tag:($(__fossil_tags))' \ + "(--help --cancel)"--cancel'[TAG Cancel TAG from this check-in]:tag:($(__fossil_tags))' \ + "(--help --branch)"--branch'[NAME Make this check-in the start of branch NAME]:name:($(__fossil_branches))' \ + "(--help --hide)"--hide'[Hide branch starting from this check-in]' \ + "(--help --close)"--close'[Mark this "leaf" as closed]' \ + "(--help -n --dry-run)"{-n,--dry-run}'[Print control artifact, but make no changes]' \ + "(--help --date-override)"--date-override'[DATETIME Set the change time on the control artifact]:datetime:(now)' \ + "(--help --user-override)"--user-override'[USER Set the user name on the control artifact]:user:($(__fossil_users))' \ + '(- *)'--help'[Show help and exit]' + + ;; + (annotate|blame|praise) + _arguments \ + "(--help --filevers)"--filevers'[Show file version numbers]' \ + "(--help -r --revision)"{-r,--revision}'[VERSION The specific check-in containing the file]:version:' \ + "(--help -l --log)"{-l,--log}'[List all versions analyzed]' \ + "(--help -n --limit)"{-n,--limit}'[LIMIT Limit versions]:limit:(none)' \ + "(--help -o --origin)"{-o,--origin}'[VERSION The origin check-in]:version:' \ + "(--help -w --ignore-all-space)"{-w,--ignore-all-space}'[Ignore white space when comparing lines]' \ + "(--help -Z --ignore-trailing-space)"{-Z,--ignore-trailing-space}'[Ignore whitespace at line end]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (artifact) + _arguments \ + "(--help -R --repository)"{-R,--repository}'[FILE Extract artifacts from repository FILE]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '1:artifact id:' \ + '2::output file:_files' + + ;; + (attachment) + _arguments \ + "(--help -t --technote)"{-t,--technote}'[DATETIME The timestamp of the technote]:datetime:(now)' \ + "(--help -t --technote)"{-t,--technote}'[TECHNOTE-ID The technote to be updated]:technote-id:' \ + '(- *)'--help'[Show help and exit]' \ + '1:what:(add)' \ + '::pagename:($(__fossil_wiki_pages))' \ + ':file:_files' + + ;; + (backoffice) + _arguments \ + "(--help --debug)"--debug'[Show what this command is doing]' \ + "(--help --logfile)"--logfile'[FILE Append a log of backoffice actions onto FILE]:file:_files' \ + "(--help --min)"--min'[N Invoke backoffice at least once every N seconds]:number:' \ + "(--help --poll)"--poll'[N Polling frequency]:number:' \ + "(--help --trace)"--trace'[Enable debugging output on stderr]' \ + "(--help --nodelay)"--nodelay'[Do not queue up or wait for a backoffice job]' \ + "(--help --nolease)"--nolease'[Always run backoffice]' \ + '(- *)'--help'[Show help and exit]' \ + '*:fossils:($(__fossil_repos))' + + ;; + (backup) + _arguments \ + "(--help --overwrite)"--overwrite'[OK to overwrite an existing file]' \ + "(--help -R)"-R'[NAME Filename of the repository to backup]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (bisect) + __fossil_bisect + + ;; + (branch) + __fossil_branch + + ;; + (bundle) + __fossil_bundle + + ;; + (cache) + __fossil_cache + + ;; + (cat) + _arguments \ + "(--help -R --repository)"{-R,--repository}'[FILE Extract artifacts from repository FILE]:fossils:($(__fossil_repos))' \ + "(--help -r)"-r'[VERSION The specific check-in containing the file]:version:' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (cgi) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '::cgi:' \ + ':file:_files' + + ;; + (changes|status) + _arguments \ + "(--help --abs-paths)"--abs-paths'[Display absolute pathnames]' \ + "(--help --rel-paths)"--rel-paths'[Display pathnames relative to the current directory]' \ + "(--help --hash)"--hash'[Verify file status using hashing]' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override case-sensitive setting]:bool:(yes no)' \ + "(--help --dotfiles)"--dotfiles'[Include unmanaged files beginning with a dot]' \ + "(--help --ignore)"--ignore'[CSG Ignore unmanaged files matching CSG glob patterns]:pattern:' \ + "(--help --header)"--header'[Identify the repository if report is non-empty.]' \ + "(--help -v --verbose)"{-v,--verbose}'[Say "(none)" if the change report is empty]' \ + "(--help --classify)"--classify'[Start each line with the file'"'"'s change type]' \ + "(--help --no-classify)"--no-classify'[Do not print file change types]' \ + "(--help --edited)"--edited'[Display edited, merged, and conflicted files]' \ + "(--help --updated)"--updated'[Display files updated by merge/integrate]' \ + "(--help --changed)"--changed'[Combination of --edited and --updated]' \ + "(--help --missing)"--missing'[Display missing files]' \ + "(--help --added)"--added'[Display added files]' \ + "(--help --deleted)"--deleted'[Display deleted files]' \ + "(--help --renamed)"--renamed'[Display renamed files]' \ + "(--help --conflict)"--conflict'[Display files having merge conflicts]' \ + "(--help --meta)"--meta'[Display files with metadata changes]' \ + "(--help --unchanged)"--unchanged'[Display unchanged files]' \ + "(--help --all)"--all'[Display all managed files]' \ + "(--help --extra)"--extra'[Display unmanaged files]' \ + "(--help --differ)"--differ'[Display modified and extra files]' \ + "(--help --merge)"--merge'[Display merge contributors]' \ + "(--help --no-merge)"--no-merge'[Do not display merge contributors]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (checkout|co) + _arguments \ + "(--help --force)"--force'[Ignore edited files in the current checkout]' \ + "(--help --keep)"--keep'[Only update the manifest and manifest.uuid files]' \ + "(--help --force-missing)"--force-missing'[Force checkout even if content is missing]' \ + "(--help --setmtime)"--setmtime'[Set timestamps of all files to match their SCM-side]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (ci|commit) + _arguments \ + "(--help --allow-conflict)"--allow-conflict'[Allow unresolved merge conflicts]' \ + "(--help --allow-empty)"--allow-empty'[Allow a commit with no changes]' \ + "(--help --allow-fork)"--allow-fork'[Allow the commit to fork]' \ + "(--help --allow-older)"--allow-older'[Allow a commit older than its ancestor]' \ + "(--help --baseline)"--baseline'[Use a baseline manifest in the commit process]' \ + "(--help --bgcolor)"--bgcolor'[COLOR Apply COLOR to this one check-in only]:color:' \ + "(--help --branch)"--branch'[NEW-BRANCH-NAME check in to this new branch]:new branch:' \ + "(--help --branchcolor)"--branchcolor'[COLOR Apply given COLOR to the branch]:color:' \ + "(--help --close)"--close'[Close the branch being committed]' \ + "(--help --date-override)"--date-override'[DATETIME DATE to use instead of '"'"'now'"'"']:datetime:' \ + "(--help --delta)"--delta'[Use a delta manifest in the commit process]' \ + "(--help --hash)"--hash'[Verify file status using hashing]' \ + "(--help --integrate)"--integrate'[Close all merged-in branches]' \ + "(--help -m --comment)"{-m,--comment}'[COMMENT Use COMMENT as commit comment]:comment:' \ + "(--help -M --message-file)"{-M,--message-file}'[FILE Read the commit comment from given file]:file:_files' \ + "(--help --mimetype)"--mimetype'[MIMETYPE Mimetype of check-in comment]:mimetype:' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + "(--help --no-prompt)"--no-prompt'[Assume NO for every question]' \ + "(--help --no-warnings)"--no-warnings'[Omit all warnings about file contents]' \ + "(--help --no-verify)"--no-verify'[Do not run before-commit hooks]' \ + "(--help --nosign)"--nosign'[Do not attempt to sign this commit with gpg]' \ + "(--help --override-lock)"--override-lock'[Allow a check-in even though parent is locked]' \ + "(--help --private)"--private'[Do not sync changes and their descendants]' \ + "(--help --tag)"--tag'[TAG-NAME Assign given tag TAG-NAME to the check-in]:tag:($(__fossil_tags))' \ + "(--help --trace)"--trace'[Debug tracing]' \ + "(--help --user-override)"--user-override'[USER Use USER instead of the current default]:user:($(__fossil_users))' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (clean) + _arguments \ + ${_fossil_clean_options[@]} \ + '*:files:_files' + + ;; + (clone) + _arguments \ + "(--help --admin-user -A)"{--admin-user,-A}'[USERNAME Make USERNAME the administrator]:user:($(__fossil_users))' \ + "(--help --httpauth -B)"{--httpauth,-B}'[USER:PASS Add HTTP Basic Authorization to requests]:user pass:' \ + "(--help --nocompress)"--nocompress'[Omit extra delta compression]' \ + "(--help --once)"--once'[Don'"'"'t remember the URI]' \ + "(--help --private)"--private'[Also clone private branches]' \ + "(--help --save-http-password)"--save-http-password'[Remember the HTTP password without asking]' \ + "(--help --ssh-command -c)"{--ssh-command,-c}'[SSH Use SSH as the "ssh" command]:ssh command:' \ + "(--help --ssl-identity)"--ssl-identity'[FILENAME Use the SSL identity if requested by the server]:file:_files' \ + "(--help -u --unversioned)"{-u,--unversioned}'[Also sync unversioned content]' \ + "(--help -v --verbose)"{-v,--verbose}'[Show more statistics in output]' \ + '(- *)'--help'[Show help and exit]' \ + '1:uri:__fossil_urls' \ + '2:file:_files' + + ;; + (close) + _arguments \ + "(--help --force -f)"{--force,-f}'[Close a check out with uncommitted changes]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (configuration) + __fossil_configuration + + ;; + (dbstat) + _arguments \ + ${_fossil_dbstat_options[@]} \ + '(- *)'--help'[Show help and exit]' + + ;; + (deconstruct) + _arguments \ + "(--help -R --repository)"{-R,--repository}'[REPOSITORY Deconstruct given REPOSITORY]:fossils:($(__fossil_repos))' \ + "(--help -K --keep-rid1)"{-K,--keep-rid1}'[Save the filename of the artifact with RID=1]' \ + "(--help -L --prefixlength)"{-L,--prefixlength}'[N Set the length of the names of the DESTINATION]:number:' \ + "(--help --private)"--private'[Include private artifacts]' \ + "(--help -P --keep-private)"{-P,--keep-private}'[Save the list of private artifacts to .private]' \ + '(- *)'--help'[Show help and exit]' \ + '1:destination:_files -/' + + ;; + (delete|forget|rm) + _arguments \ + "(--help --soft)"--soft'[Skip removing files from the checkout]' \ + "(--help --hard)"--hard'[Remove files from the checkout]' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override the case-sensitive setting]:bool:(yes no)' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + "(--help --reset)"--reset'[Reset the DELETED state of a checkout]' \ + "(--help --verbose -v)"{--verbose,-v}'[Outputs information about each --reset file]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (descendants) + _arguments \ + "(--help -R --repository)"{-R,--repository}'[FILE Extract info from repository FILE]:fossils:($(__fossil_repos))' \ + "(--help -W --width)"{-W,--width}'[NUM Width of lines]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '1::check-in:' + + ;; + (diff|gdiff) + _arguments \ + ${_fossil_diff_options[@]} \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (export) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (extras) + _arguments \ + ${_fossil_extras_options[@]} \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files -/' + + ;; + (finfo) + _arguments \ + "(--help -b --brief)"{-b,--brief}'[Display a brief (one line / revision) summary]' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Enable or disable case-sensitive filenames]:bool:(yes no)' \ + "(--help -l --log)"{-l,--log}'[Select log mode (the default)]' \ + "(--help -n --limit)"{-n,--limit}'[N Display only the first N changes]:number:' \ + "(--help --offset)"--offset'[P Skip P changes]:number:' \ + "(--help -p --print)"{-p,--print}'[Select print mode]' \ + "(--help -r --revision)"{-r,--revision}'[R Print the given revision]:version:' \ + "(--help -s --status)"{-s,--status}'[Select status mode (print a status indicator for FILE)]' \ + "(--help -W --width)"{-W,--width}'[NUM Width of lines]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (fts-config) + __fossil_fts_config + + ;; + (git) + __fossil_git + + ;; + (grep) + _arguments \ + "(--help -c --count)"{-c,--count}'[Suppress normal output; print count of files]' \ + "(--help -i --ignore-case)"{-i,--ignore-case}'[Ignore case]' \ + "(--help -l --files-with-matches)"{-l,--files-with-matches}'[List only hash for each match]' \ + "(--help --once)"--once'[Stop searching after the first match]' \ + "(--help -s --no-messages)"{-s,--no-messages}'[Suppress error messages]' \ + "(--help -v --invert-match)"{-v,--invert-match}'[Invert the sense of matching]' \ + "(--help --verbose)"--verbose'[Show each file as it is analyzed]' \ + '(- *)'--help'[Show help and exit]' \ + '1:pattern:' \ + '*:files:_files' + + ;; + (hash-policy) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1::policy:(sha1 auto sha3 sha3-only shun-sha1)' + + ;; + (help) + _arguments \ + "(- :)"{-a,--all}'[List both common and auxiliary commands]' \ + "(- :)"{-o,--options}'[List command-line options common to all commands]' \ + "(- :)"{-s,--setting}'[List setting names]' \ + "(- :)"{-t,--test}'[List unsupported "test" commands]' \ + "(- :)"{-x,--aux}'[List only auxiliary commands]' \ + "(- :)"{-w,--www}'[List all web pages]' \ + "(- :):all commands:($(__fossil_all_commands))" \ + "(- *)"--html'[Format output as HTML rather than plain text]' + + ;; + (hook) + __fossil_hook + + ;; + (http) + _arguments \ + "(--help --baseurl)"--baseurl'[URL Base URL (useful with reverse proxies)]:url:__fossil_urls' \ + "(--help --extroot)"--extroot'[DIR Document root for the /ext extension mechanism]:file:_files -/' \ + "(--help --files)"--files'[GLOB Comma-separate glob patterns for static file to serve]:pattern:' \ + "(--help --host)"--host'[NAME Specify hostname of the server]:name:' \ + "(--help --https)"--https'[Signal a request coming in via https]' \ + "(--help --in)"--in'[FILE Take input from FILE instead of standard input]:file:_files' \ + "(--help --ipaddr)"--ipaddr'[ADDR Assume the request comes from the given IP address]:address:' \ + "(--help --jsmode)"--jsmode'[MODE Determine how JavaScript is delivered with pages]:mode:(inline separate bundled)' \ + "(--help --localauth)"--localauth'[Enable automatic login for local connections]' \ + "(--help --nocompress)"--nocompress'[Do not compress HTTP replies]' \ + "(--help --nodelay)"--nodelay'[Omit backoffice processing if it would delay process exit]' \ + "(--help --nojail)"--nojail'[Drop root privilege but do not enter the chroot jail]' \ + "(--help --nossl)"--nossl'[Signal that no SSL connections are available]' \ + "(--help --notfound)"--notfound'[URL Use URL as "HTTP 404, object not found" page]:url:__fossil_urls' \ + "(--help --out)"--out'[FILE Write results to FILE instead of to standard output]:file:_files' \ + "(--help --repolist)"--repolist'[If REPOSITORY is directory, URL "/" lists all repos]' \ + "(--help --scgi)"--scgi'[Interpret input as SCGI rather than HTTP]' \ + "(--help --skin)"--skin'[LABEL Use override skin LABEL]:label:' \ + "(--help --th-trace)"--th-trace'[Trace TH1 execution (for debugging purposes)]' \ + "(--help --usepidkey)"--usepidkey'[Use saved encryption key from parent process]' \ + '(- *)'--help'[Show help and exit]' \ + '1::fossils:_files' + + ;; + (import) + _arguments \ + "(--help --git)"--git'[Import from the git-fast-export file format (default)]' \ + "(--help --import-marks)"--import-marks'[FILE Restore marks table from FILE]:file:_files' \ + "(--help --export-marks)"--export-marks'[FILE Save marks table to FILE]:files:_files' \ + "(--help --rename-master)"--rename-master'[NAME Renames the master branch to NAME]:name:' \ + "(--help --use-author)"--use-author'[Uses author as the committer]:user:($(__fossil_users))' \ + "(--help --svn)"--svn'[Import from the svnadmin-dump file format]' \ + "(--help --trunk)"--trunk'[FOLDER Name of trunk folder]:file:_files -/' \ + "(--help --branches)"--branches'[FOLDER Name of branches folder]:file:_files -/' \ + "(--help --tags)"--tags'[FOLDER Name of tags folder]:file:_files -/' \ + "(--help --base)"--base'[PATH Path to project root in repository]:file:_files' \ + "(--help --flat)"--flat'[The whole dump is a single branch]' \ + "(--help --rev-tags)"--rev-tags'[Tag each revision, implied by -i]' \ + "(--help --no-rev-tags)"--no-rev-tags'[Disables tagging effect of -i]' \ + "(--help --rename-rev)"--rename-rev'[PAT Rev tag names, default "svn-rev-%"]:pattern:' \ + "(--help --ignore-tree)"--ignore-tree'[DIR Ignores subtree rooted at DIR]:file:_files -/' \ + "(--help -i --incremental)"{-i,--incremental}'[Allow importing into an existing repository]' \ + "(--help -f --force)"{-f,--force}'[Overwrite repository if already exists]' \ + "(--help -q --quiet)"{-q,--quiet}'[Omit progress output]' \ + "(--help --no-rebuild)"--no-rebuild'[Skip the "rebuilding metadata" step]' \ + "(--help --no-vacuum)"--no-vacuum'[Skip the final VACUUM of the database file]' \ + "(--help --rename-trunk)"--rename-trunk'[NAME use NAME as name of imported trunk branch]:name:' \ + "(--help --rename-branch)"--rename-branch'[PAT Rename all branch names using PAT pattern]:pattern:' \ + "(--help --rename-tag)"--rename-tag'[PAT Rename all tag names using PAT pattern]:pattern:' \ + "(--help --admin-user -A)"{--admin-user,-A}'[NAME Use NAME for the admin user]:user:($(__fossil_users))' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (info) + _arguments \ + "(--help -R --repository)"{-R,--repository}'[FILE Extract info from repository FILE]:fossils:($(__fossil_repos))' \ + "(--help -v --verbose)"{-v,--verbose}'[Show extra information about repositories]' \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' + + ;; + (init|new) + _arguments \ + "(--help --template)"--template'[FILE Copy settings from repository file]:file:_files' \ + "(--help --admin-user -A)"{--admin-user,-A}'[USERNAME Select given USERNAME as admin user]:user:($(__fossil_users))' \ + "(--help --date-override)"--date-override'[DATETIME Use DATETIME as time of the initial check-in]:datetime:(now)' \ + "(--help --sha1)"--sha1'[Use an initial hash policy of "sha1"]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (json) + __fossil_json + + ;; + (leaves) + _arguments \ + "(--help -a --all)"{-a,--all}'[Show ALL leaves]' \ + "(--help --bybranch)"--bybranch'[Order output by branch name]' \ + "(--help -c --closed)"{-c,--closed}'[Show only closed leaves]' \ + "(--help -m --multiple)"{-m,--multiple}'[Show only cases with multiple leaves on a single branch]' \ + "(--help --recompute)"--recompute'[Recompute the "leaf" table in the repository DB]' \ + "(--help -W --width)"{-W,--width}'[NUM Width of lines (default is to auto-detect)]:number:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (login-group) + __fossil_login_group + + ;; + (ls) + _arguments \ + "(--help --age)"--age'[Show when each file was committed]' \ + "(--help -v --verbose)"{-v,--verbose}'[Provide extra information about each file]' \ + "(--help -t)"-t'[Sort output in time order]' \ + "(--help -r)"-r'[VERSION The specific check-in to list]:version:' \ + "(--help -R --repository)"{-R,--repository}'[FILE Extract info from repository FILE]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (md5sum) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (merge) + _arguments \ + "(--help --backout)"--backout'[Do a reverse cherrypick merge against VERSION]' \ + "(--help --baseline)"--baseline'[BASELINE Use BASELINE as the "pivot" of the merge instead]:version:' \ + "(--help --binary)"--binary'[GLOBPATTERN Treat files that match GLOBPATTERN as binary]:pattern:' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override the case-sensitive setting]:bool:(yes no)' \ + "(--help --cherrypick)"--cherrypick'[Do a cherrypick merge VERSION into the current checkout]' \ + "(--help -f --force)"{-f,--force}'[Force the merge even if it would be a no-op]' \ + "(--help --force-missing)"--force-missing'[Force the merge even if there is missing content]' \ + "(--help --integrate)"--integrate'[Merged branch will be closed when committing]' \ + "(--help -K --keep-merge-files)"{-K,--keep-merge-files}'[On merge conflict, retain the temporary files]' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + "(--help -v --verbose)"{-v,--verbose}'[Show additional details of the merge]' \ + '(- *)'--help'[Show help and exit]' \ + '1:version:' + + ;; + (mv|rename) + _arguments \ + "(--help --soft)"--soft'[Skip moving files within the checkout]' \ + "(--help --hard)"--hard'[Move files within the checkout]' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override the case-sensitive setting]:bool:(yes no)' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (open) + _arguments \ + "(--help --empty)"--empty'[Initialize checkout as being empty, but still connected]' \ + "(--help --force)"--force'[Continue even if the directory is not empty]' \ + "(--help --force-missing)"--force-missing'[Force opening a repository with missing content]' \ + "(--help --keep)"--keep'[Only modify the manifest and manifest.uuid files]' \ + "(--help --nested)"--nested'[Allow opening a repository inside an opened checkout]' \ + "(--help --repodir)"--repodir'[DIR Store the clone in DIR]:directory:_files -/' \ + "(--help --setmtime)"--setmtime'[Set timestamps of all files to match their SCM-side times]' \ + "(--help --workdir)"--workdir'[DIR Use DIR as the working directory]:directory:_files -/' \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' \ + '::version:' + + ;; + (pop3d) + _arguments \ + "(--help --logdir)"--logdir'[DIR Create log files inside DIR]:directory:_files -/' \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' + + ;; + (publish) + _arguments \ + '(--help --only)'--only'[Publish only the specific artifacts identified by the tags]' \ + '(- *)'--help'[Show help and exit]' \ + '*:tags:($(__fossil_tags))' + + ;; + (pull) + _arguments \ + "(--help -B --httpauth)"{-B,--httpauth}'[USER:PASS Credentials for the simple HTTP auth protocol]:user pass:' \ + "(--help --from-parent-project)"--from-parent-project'[Pull content from the parent project]' \ + "(--help --ipv4)"--ipv4'[Use only IPv4, not IPv6]' \ + "(--help --once)"--once'[Do not remember URL for subsequent syncs]' \ + "(--help --private)"--private'[Pull private branches too]' \ + "(--help --project-code)"--project-code'[CODE Use CODE as the project code]:project code:' \ + "(--help --proxy)"--proxy'[PROXY Use the specified HTTP proxy]:proxy:' \ + "(--help -R --repository)"{-R,--repository}'[REPO Local repository to pull into]:fossils:($(__fossil_repos))' \ + "(--help --ssl-identity)"--ssl-identity'[FILE Local SSL credentials]:ssl credentials:' \ + "(--help --ssh-command)"--ssh-command'[SSH Use SSH as the "ssh" command]:ssh command:' \ + "(--help -v --verbose)"{-v,--verbose}'[Additional (debugging) output]' \ + "(--help --verily)"--verily'[Exchange extra information with the remote]' \ + '(- *)'--help'[Show help and exit]' \ + '1:url:__fossil_urls' + + ;; + (purge) + __fossil_purge + + ;; + (push) + _arguments \ + "(--help -B --httpauth)"{-B,--httpauth}'[USER:PASS Credentials for the simple HTTP auth protocol]:user pass:' \ + "(--help --ipv4)"--ipv4'[Use only IPv4, not IPv6]' \ + "(--help --once)"--once'[Do not remember URL for subsequent syncs]' \ + "(--help --proxy)"--proxy'[PROXY Use the specified HTTP proxy]' \ + "(--help --private)"--private'[Push private branches too]' \ + "(--help -R --repository)"{-R,--repository}'[REPO Local repository to push from]:fossils:($(__fossil_repos))' \ + "(--help --ssl-identity)"--ssl-identity'[FILE Local SSL credentials]:ssl credentials:' \ + "(--help --ssh-command)"--ssh-command'[SSH Use SSH as the "ssh" command]:ssh command:' \ + "(--help -v --verbose)"{-v,--verbose}'[Additional (debugging) output]' \ + "(--help --verily)"--verily'[Exchange extra information with the remote]' \ + '(- *)'--help'[Show help and exit]' \ + '1::url:__fossil_urls' + + ;; + (rebuild) + _arguments \ + ${_fossil_rebuild_options[@]} \ + "(--help --force)"--force'[Force the rebuild to complete even if errors are seen]' \ + "(--help --randomize)"--randomize'[Scan artifacts in a random order]' \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' + + ;; + (reconstruct) + _arguments \ + "(--help -K --keep-rid1)"{-K,--keep-rid1}'[Read the filename of the artifact with RID=1 from .rid]' \ + "(--help -P --keep-private)"{-P,--keep-private}'[Mark the artifacts listed in .private as private]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:directory:_files -/' + + ;; + (redo|undo) + _arguments \ + "(--help -n --dry-run)"{-n,--dry-run}'[Do not make changes but show what would be done]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (remote|remote-url) + __fossil_remote + + ;; + (reparent) + _arguments \ + "(--help --test)"--test'[Make database entries but do not add the tag artifact]' \ + "(--help -n --dryrun)"{-n,--dryrun}'[Do not actually change the database]' \ + "(--help --date-override)"--date-override'[DATETIME Set the change time on the control artifact]:datetime:' \ + "(--help --user-override)"--user-override'[USER Set the user name on the control artifact]:user:($(__fossil_users))' \ + '(- *)'--help'[Show help and exit]' \ + '1:check-in:' \ + '*:parents:' + + ;; + (revert) + _arguments \ + "(--help -r --revision)"{-r,--revision}'[VERSION Revert to given VERSION]:version:' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (rss) + _arguments \ + "(--help -type -y)"{-type,-y}'[FLAG]:type:(all ci t w)' \ + "(--help -limit -n)"{-limit,-n}'[LIMIT The maximum number of items to show]:number:' \ + "(--help -tkt)"-tkt'[HASH Filters for only those events for the specified ticket]:hash:' \ + "(--help -tag)"-tag'[TAG Filters for a tag]:tag:($(__fossil_tags))' \ + "(--help -wiki)"-wiki'[NAME Filters on a specific wiki page]:wiki page:($(__fossil_wiki_pages))' \ + "(--help -name)"-name'[FILENAME filters for a specific file]:file:_files' \ + "(--help -url)"-url'[STRING Sets the RSS feed'"'"'s root URL to the given string]:url:__fossil_urls' \ + '(- *)'--help'[Show help and exit]' + + ;; + (scrub) + _arguments \ + "(--help --force)"--force'[Do not prompt for confirmation]' \ + "(--help --private)"--private'[Only private branches are removed from the repository]' \ + "(--help --verily)"--verily'[Scrub real thoroughly (see above)]' \ + '(- *)'--help'[Show help and exit]' \ + '1::fossils:($(__fossil_repos))' + + ;; + (search) + _arguments \ + "(--help -a --all)"{-a,--all}'[Output all matches, not just best matches]' \ + "(--help -n --limit)"{-n,--limit}'[N Limit output to N matches]:number:' \ + "(--help -W --width)"{-W,--width}'[WIDTH Set display width to WIDTH columns]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '*:patterns:' + + ;; + (server|ui) + _arguments \ + ${_fossil_server_options[@]} \ + '1::fossils:($(__fossil_repos))' + + ;; + (set|settings) + _arguments \ + "(--global)"--global'[Set or unset the given property globally]' \ + "(--exact)"--exact'[Only consider exact name matches]' \ + "1:setting:($(__fossil_settings))" \ + '2:value:' + + ;; + (sha1sum) + _arguments \ + "(--help -h --dereference)"{-h,--dereference}'[Resolve symbolic links]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (sha3sum) + _arguments \ + "(--help --224 --256 --384 --512 --size)"--224'[Compute a SHA3-224 hash]' \ + "(--help --256 --224 --384 --512 --size)"--256'[Compute a SHA3-256 hash (the default)]' \ + "(--help --384 --224 --256 --512 --size)"--384'[Compute a SHA3-384 hash]' \ + "(--help --512 --224 --256 --384 --size)"--512'[Compute a SHA3-512 hash]' \ + "(--help --size --224 --256 --384 --512 --size)"--size'[N An N-bit hash]:number:' \ + "(--help -h --dereference)"{-h,--dereference}'[Resolve symbolic links]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (shell) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (smtpd) + _arguments \ + "(--help --dryrun)"--dryrun'[Do not record any emails in the database]' \ + "(--help --trace)"--trace'[Print a transcript of the conversation on stderr]' \ + "(--help --ipaddr)"--ipaddr'[ADDR The SMTP connection originates at ADDR]:address:' \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' + + ;; + (sql|sqlite3) + _arguments \ + "(--help --no-repository)"--no-repository'[Skip opening the repository database]' \ + "(--help --readonly)"--readonly'[Open the repository read-only]' \ + "(--help -R)"-R'[REPOSITORY Use REPOSITORY as the repository database]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' + + ;; + (sqlar) + _arguments \ + "(--help -X --exclude)"{-X,--exclude}'[GLOBLIST Comma-separated list of GLOBs of files to exclude]:pattern:' \ + "(--help --include)"--include'[GLOBLIST Comma-separated list of GLOBs of files to include]:pattern:' \ + "(--help --name)"--name'[DIR The name of the top-level directory in the archive]:directory:_files -/' \ + "(--help -R)"-R'[REPOSITORY Specify a Fossil repository]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '1:version:' \ + '2:output file:_files' + + ;; + (stash) + __fossil_stash + + ;; + (sync) + _arguments \ + "(--help -B --httpauth)"{-B,--httpauth}'[USER:PASS Credentials for the simple HTTP auth protocol]:user pass:' \ + "(--help --ipv3)"--ipv4'[Use only IPv4, not IPv6]' \ + "(--help --once)"--once'[Do not remember URL for subsequent syncs]' \ + "(--help --proxy)"--proxy'[PROXY Use the specified HTTP proxy]:proxy:' \ + "(--help --private)"--private'[Sync private branches too]' \ + "(--help -R --repository)"{-R,--repository}'[REPO Local repository to sync with]:fossils:($(__fossil_repos))' \ + "(--help --ssl-identity)"--ssl-identity'[FILE Local SSL credentials]:ssl credentials:' \ + "(--help --ssh-command)"--ssh-command'[SSH Use SSH as the "ssh" command]:ssh command:' \ + "(--help -u --unversioned)"{-u,--unversioned}'[Also sync unversioned content]' \ + "(--help -v --verbose)"{-v,--verbose}'[Additional (debugging) output]' \ + "(--help --verily)"--verily'[Exchange extra information with the remote]' \ + '(- *)'--help'[Show help and exit]' \ + '1::url:__fossil_urls' + + ;; + (tag) + __fossil_tag + + ;; + (tarball) + _arguments \ + "(--help -X --exclude)"{-X,--exclude}'[GLOBLIST Comma-separated list of GLOBs of files to exclude]:pattern:' \ + "(--help --include)"--include'[GLOBLIST Comma-separated list of GLOBs of files to include]:pattern:' \ + "(--help --name)"--name'[DIR The name of the top-level directory in the archive]:directory:_files -/' \ + "(--help -R)"-R'[REPOSITORY Specify a Fossil repository]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '1:version:' \ + '2:ouput file:_files' + + ;; + (ticket) + __fossil_ticket + + ;; + (timeline) + _arguments \ + "(--help -n --limit)"{-n,--limit}'[N Output the first N entries]:number:' \ + "(--help -p --path)"{-p,--path}'[PATH Output items affecting PATH only]:path:_files' \ + "(--help --offset)"--offset'[P skip P changes]:number:' \ + "(--help --sql)"--sql'[Show the SQL used to generate the timeline]' \ + "(--help -t --type)"{-t,--type}'[TYPE Output items from the given types only]:type:(ci e t w)' \ + "(--help -v --verbose)"{-v,--verbose}'[Output the list of files changed by each commit]' \ + "(--help -W --width)"{-W,--width}'[NUM Width of lines (default is to auto-detect)]:number:' \ + "(--help -R)"-R'[REPO Specifies the repository db to use]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '::when:(before after descendants children ancestors parents)' \ + '::check-in:' \ + '::datetime:' + + ;; + (tls-config) + __fossil_tls_config + + ;; + (touch) + _arguments \ + "(--help --now -c --checkin -C --checkout)"--now'[Stamp each affected file with the current time]' \ + "(--help -c --checkin --now -C --checkout)"{-c,--checkin}'[Stamp with the last modification time]' \ + "(--help -C --checkout -c --checkin --now)"{-C,--checkout}'[Stamp with the time of the current checkout]' \ + "(--help -g)"-g'[GLOBLIST Comma-separated list of glob patterns]:pattern:' \ + "(--help -G)"-G'[GLOBFILE Like -g but reads globs from glob default file]:pattern:' \ + "(--help -v -verbose)"{-v,-verbose}'[Outputs extra information about its globs]' \ + "(--help -n --dry-run)"{-n,--dry-run}'[Do not touch anything]' \ + "(--help -q --quiet)"{-q,--quiet}'[Suppress warnings]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (unpublished) + _arguments \ + "(--help --all)"--all'[Show all artifacts, not just check-ins]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (unset) + _arguments \ + "(--global)"--global'[Set or unset the given property globally]' \ + "(--exact)"--exact'[Only consider exact name matches]' \ + "1:setting:($(__fossil_settings))" + + ;; + (unversioned|uv) + __fossil_unversioned + + ;; + (update) + _arguments \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Override case-sensitive setting]:bool:(yes no)' \ + "(--help --debug)"--debug'[Print debug information on stdout]' \ + "(--help --latest)"--latest'[Update to latest version]' \ + "(--help --force-missing)"--force-missing'[Force update if missing content after sync]' \ + "(--help -n --dry-run)"{-n,--dry-run}'[If given, display instead of run actions]' \ + "(--help -v --verbose)"{-v,--verbose}'[Print status information about all files]' \ + "(--help -W --width)"{-W,--width}'[WIDTH Width of lines (default is to auto-detect)]:number:' \ + "(--help --setmtime)"--setmtime'[Set timestamps of all files to match their SCM-side times]' \ + "(--help -K --keep-merge-files)"{-K,--keep-merge-files}'[On merge conflict, retain the temporary files]' \ + '(- *)'--help'[Show help and exit]' \ + '1::version:' \ + '*::files:_files' + + ;; + (user) + __fossil_user + + ;; + (version) + _arguments \ + "(--help -v --verbose)"{-v,--verbose}'[Additional details about optional features]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (whatis) + _arguments \ + "(--help --type)"--type'[TYPE Only find artifacts of TYPE]:type:(ci t w g e)' \ + "(--help -v --verbose)"{-v,--verbose}'[Provide extra information (such as the RID)]' \ + '(- *)'--help'[Show help and exit]' \ + '1:name:' + + ;; + (wiki) + __fossil_wiki + + ;; + (zip) + _arguments \ + "(--help -X --exclude)"{-X,--exclude}'[GLOBLIST Comma-separated list of GLOBs of files to exclude]:pattern:' \ + "(--help --include)"--include'[GLOBLIST Comma-separated list of GLOBs of files to include]:pattern:' \ + "(--help --name)"--name'[DIR The name of the top-level directory in the archive]:directory:_files -/' \ + "(--help -R)"-R'[REPOSITORY Specify a Fossil repository]:fossils:($(__fossil_repos))' \ + '(- *)'--help'[Show help and exit]' \ + '1:version:' \ + '2:output file:_files' + + ;; + esac + ;; + *) + esac + return 0 +} + +################################################################################ +# Subcommands # +################################################################################ + +######################################## +# fossil alerts # +######################################## +function __fossil_alerts_settings() { + fossil alerts settings 2>/dev/null +} + +function __fossil_alerts_subscribers() { + fossil alerts subscribers 2>/dev/null +} + +function __fossil_alerts() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(--help -R --repository)"{-R,--repository}'[FILE Run command on repository FILE]:fossils:($(__fossil_repos))' + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + pending reset send settings status subscribers \ + test-message unsubscribe + + ;; + (options) + case $line[1] in + (pending|reset) + _arguments \ + ${_common_options[@]} + + ;; + (send) + _arguments \ + ${_common_options[@]} \ + "(--help --digest)"--digest'[Send digests]' \ + "(--help --test)"--test'[Write to standard output]' + + ;; + (set|settings) + _arguments \ + ${_common_options[@]} \ + '1::name:($(__fossil_alerts_settings))' \ + '2::value:' + + ;; + (subscribers) + _arguments \ + ${_common_options[@]} \ + '1::pattern:' + + ;; + (test-message) + _arguments \ + ${_common_options[@]} \ + "(--help --body)"--body'[FILENAME]:file:_files' \ + "(--help --smtp-trace)"--smtp-trace'[]' \ + "(--help --stdout)"--stdout'[]' \ + "(--help --subject -S)"{--subject,-S}'[SUBJECT]:subject:' \ + '1:recipient:' + + ;; + unsubscribe) + _arguments \ + ${_common_options[@]} \ + '1:email:($(__fossil_alerts_subscribers))' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil all # +######################################## +function __fossil_all() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + "(--help --showfile)"--showfile'[Show the repository or checkout being operated upon]' + "(--help --dontstop)"--dontstop'[Continue with other repositories even after an error]' + "(--help --dry-run)"--dry-run'[If given, display instead of run actions]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + backup cache changes clean config dbstat extras fts-config info \ + pull push rebuild sync set unset server ui add ignore list ls + + ;; + (options) + case $line[1] in + (backup) + _arguments \ + ${_common_options[@]} \ + '1:output directory:_files -/' + + ;; + (cache) + __fossil_cache + + ;; + (clean) + _arguments \ + ${_common_options[@]} \ + ${_fossil_clean_options[@]} \ + "(--help --whatif)"--whatif'[Review the files to be deleted]' + + ;; + (config) + _arguments \ + ${_common_options[@]} \ + '1:what:(pull)' \ + '2:area:' + + ;; + (dbstat) + _arguments \ + ${_fossil_dbstat_options[@]} + + ;; + (extras) + _arguments \ + ${_fossil_extras_options[@]} + + ;; + (fts-config) + __fossil_fts_config + + ;; + (pull|push) + _arguments \ + ${_common_options[@]} \ + "(--help -v --verbose)"{-v,--verbose}'[Additional (debugging) output]' + + ;; + (rebuild) + _arguments \ + ${_common_options[@]} \ + ${_fossil_rebuild_options[@]} + + ;; + (sync) + _arguments \ + ${_common_options[@]} \ + "(--help -u --unversioned)"{-u,--unversioned}'[Also sync unversioned content]' \ + "(--help -v --verbose)"{-v,--verbose}'[Additional (debugging) output]' + + ;; + (set|unset) + _arguments \ + ${_common_options[@]} \ + "1:setting:($(__fossil_settings))" \ + '2:value:' \ + "(--help --global)"--global'[Set or unset the given property globally]' \ + "(--help --exact)"--exact'[Only consider exact name matches]' + + ;; + (server|ui) + _arguments \ + ${_common_options[@]} \ + ${_fossil_server_options[@]} + + ;; + (add) + _arguments \ + ${_common_options[@]} \ + '*:fossils:($(__fossil_repos))' + + ;; + (ignore) + _arguments \ + ${_common_options[@]} \ + "(--help -c --ckout)"{-c,--ckout}'[Ignore local checkouts instead of repositories]' \ + '*:fossils:($(__fossil_repos))' + + ;; + (list|ls) + _arguments \ + "(-)"--help'[Show help and exit]' \ + "(--help -c --ckout)"{-c,--ckout}'[List local checkouts instead of repositories]' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + + +######################################## +# fossil bisect # +######################################## +function __fossil_bisect() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + bad good log chart next options reset skip vlist ls status ui undo + + ;; + (options) + case $line[1] in + (bad|good|skip) + _arguments \ + '1:version:' + + ;; + (options) + _arguments \ + "1::name:($(fossil bisect options 2>/dev/null | awk '{print $1}'))" \ + '2::value:' + + ;; + (vlist|ls|status) + _arguments \ + "(-a --all)"{-a,--all}'[List all]' + + ;; + (ui) + _arguments \ + ${_fossil_server_options[@]} + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil branch # +######################################## +function __fossil_branch() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + "(--help -R --repository)"{-R,--repository}'[FILE Run commands on repository FILE]:fossils:($(__fossil_repos))' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + current info list ls new + + ;; + (options) + case $line[1] in + (current) + _arguments \ + ${_common_options[@]} + + ;; + (info) + _arguments \ + ${_common_options[@]} \ + ':branch:($(__fossil_branches))' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} \ + "(--help -a --all)"{-a,--all}'[List all branches]' \ + "(--help -c --closed)"{-c,--closed}'[List closed branches]' \ + "(--help -r)"-r'[Reverse the sort order]' \ + "(--help -t)"-t'[Show recently changed branches first]' + + ;; + (new) + _arguments \ + ${_common_options[@]} \ + "(--help --private)"--private'[Branch is private]' \ + "(--help --bgcolor)"--bgcolor'[COLOR Use COLOR instead of automatic background]:color:' \ + "(--help --nosign)"--nosign'[Do not sign contents on this branch]' \ + "(--help --date-override)"--date-override'[DATE Use DATE instead of '"'"'now'"'"']:date:(now)' \ + "(--help --user-override)"--user-override'[USER Use USER instead of the default]:user:($(__fossil_users))' \ + '1:branch name:' \ + '2:base check-in:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil bundle # +######################################## +function __fossil_bundle() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + append cat export extend import ls purge + + ;; + (options) + case $line[1] in + (append) + _arguments \ + '1:bundle:_files' \ + '*:files:_files' + + ;; + (bundle) + _arguments \ + '1:what:(cat)' \ + '2:bundle:_files' \ + '*:hashes:' + + ;; + (export) + _arguments \ + "(--branch)"--branch'[BRANCH Package all check-ins on BRANCH]:branch:($(__fossil_branches))' \ + "(--from)"--from'[TAG1 --to TAG2 Package check-ins starting with TAG1]:tag:($(__fossil_tags))' \ + "(--to)"--to'[TAG2 Package check-ins up to TAG2]:tag:($(__fossil_tags))' \ + "(--checkin)"--checkin'[TAG Package the single check-in TAG]:tag:($(__fossil_tags))' \ + "(--standalone)"--standalone'[Do no use delta-encoding against]' \ + '1:bundle:_files' + + ;; + (extend|ls|purge) + _arguments \ + '1:bundle:_files' + + ;; + (import) + _arguments \ + "(--publish)"--publish'[Make the import public]' \ + "(--force)"--force'[Import even if project codes do not match]' \ + '1:bundle:_files' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil cache # +######################################## +function __fossil_cache_subcommand { +} + +function __fossil_cache() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + clear init list ls status + + ;; + *) + _message 'no more arguments' + + ;; + esac + return 0 +} + +######################################## +# fossil configuration # +######################################## +function __fossil_configuration() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(--help -R --repository)"{-R,--repository}'[FILE Extract info from repository FILE]:fossils:($(__fossil_repos))' + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:method:->method' \ + '*::options:->options' + + case $state in + (method) + _values 'method' \ + export import merge pull push reset sync + + ;; + (options) + case $line[1] in + (export) + _arguments \ + ${_common_options[@]} \ + '1:area:__fossil_areas' \ + '2:file:_files' + + ;; + (import|merge) + _arguments \ + ${_common_options[@]} \ + '1:file:_files' + + ;; + (pull) + _arguments \ + ${_common_options[@]} \ + "(--help --overwrite)"--overwrite'[Replace local settings]' \ + '1:area:__fossil_areas' \ + '2::url:__fossil_urls' + + ;; + (push|sync) + _arguments \ + ${_common_options[@]} \ + '1:area:__fossil_areas' \ + '2::url:__fossil_urls' + + ;; + (reset) + _arguments \ + ${_common_options[@]} \ + '1:area:__fossil_areas' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil fts-config # +######################################## +function __fossil_fts_config() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + reindex index enable disable stemmer + + ;; + (options) + case $line[1] in + index|stemmer) + _arguments \ + "(- *):setting:(on off)" + + ;; + enable|disable) + _arguments \ + "(- *):setting:(cdtwe)" + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil git # +######################################## +function __fossil_git() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + subcommand) + _values 'subcommand' \ + export import status + + ;; + options) + case $line[1] in + (export) + _arguments \ + ${_common_options[@]} \ + "(--help --autopush)"--autopush'[URL Automatically do a '"'"'git push'"'"' to URL]:url:__fossil_urls' \ + "(--help --debug)"--debug'[FILE Write fast-export text to FILE]:file:_files' \ + "(--help --force -f)"{--force,-f}'[Do the export even if nothing has changed]' \ + "(--help --limit)"--limit'[N Add no more than N new check-ins to MIRROR]:number:' \ + "()*"{--quiet,-q}'[Reduce output. Repeat for even less output]' \ + "(--verbose -v)"{--verbose,-v}'[More output]' + + ;; + (import) + _arguments \ + ${_common_options[@]} \ + ':url:__fossil_urls' + + ;; + (status) + _arguments \ + ${_common_options[@]} + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil hook # +######################################## +function __fossil_hook() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + add delete edit list status test + + ;; + (options) + case $line[1] in + (add) + _arguments \ + ${_common_options[@]} \ + "(--help --command)"--command'[COMMAND]:command:' \ + "(--help --type)"--type'[TYPE]:type:' \ + "(--help --sequence)"--sequence'[NUM]:number:' + + ;; + (delete) + _arguments \ + ${_common_options[@]} \ + '*:IDs:' + + ;; + (edit) + _arguments \ + ${_common_options[@]} \ + "(--help --command)"--command'[COMMAND]:command:' \ + "(--help --type)"--type'[TYPE]:type:' \ + "(--help --sequence)"--sequence'[NUM]:number:' \ + '*:IDs:' + + ;; + (list|status) + _arguments \ + ${_common_options[@]} \ + + ;; + (test) + _arguments \ + ${_common_options[@]} \ + "(--help --dry-run)"--dry-run'[Print the script on stdout rather than run it]' \ + "(--help --base-rcvid)"--base-rcvid'[N Pretend that the hook-last-rcvid value is N]:number:' \ + "(--help --new-rcvid)"--new-rcvid'[M Pretend that the last rcvid valud is M]:number:' \ + "(--help --aux-file)"--aux-file'[NAME NAME is substituted for %A in the script]:name:' \ + '1:ID:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil json # +######################################## +function __fossil_json_subcommands() { + _values 'subcommand' \ + anonymousPassword artifact branch cap config diff dir g login logout \ + query rebuild report resultCodes stat tag timeline user version \ + whoami wiki +} + +function __fossil_json() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + "(--help -R --repository)"{-R,--repository}'[FILE Run commands on repository FILE]:fossils:($(__fossil_repos))' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _arguments \ + '(- *)'-json-input'[FILE Read JSON data from FILE]:file:_files' \ + '1:subcommand:__fossil_json_subcommands' + + ;; + (options) + case $line[1] in + -json-input) + _arguments \ + ${_common_options[@]} \ + '1:file:_files' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + *) + esac + return 0 +} + +######################################## +# fossil login-group # +######################################## +function __fossil_login_group() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + join leave + + ;; + (options) + case $line[1] in + (join) + _arguments \ + "(-name)"-name'[Specified the name of the login group]:name:' \ + ':fossils:($(__fossil_repos))' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil purge # +######################################## +function __fossil_purge() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(--help --explain --dry-run)"--explain'[Make no changes, but show what would happen]' + "(--help --dry-run --explain)"--dry-run'[An alias for --explain]' + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + "(-)"--help'[Show help and exit]' \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + artifacts cat checkins files list ls obliterate tickets undo wiki + + ;; + (options) + case $line[1] in + (artifacts|cat) + _arguments \ + ${_common_options[@]} \ + '*:hashes:' + + ;; + (checkins) + _arguments \ + ${_common_options[@]} \ + '*:tags:($(__fossil_tags))' + + ;; + (files) + _arguments \ + ${_common_options[@]} \ + '*:files:_files' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} \ + "(--help -l)"-l'[Provide more details]' + + ;; + (obliterate) + _arguments \ + ${_common_options[@]} \ + "(--help --force)"--force'[Suppress confirmation prompt]' \ + '*:IDs:' + + ;; + (tickets) + _arguments \ + ${_common_options[@]} \ + '*:ticket names:' + + ;; + (undo) + _arguments \ + ${_common_options[@]} \ + '1:ID:' + + ;; + (wiki) + _arguments \ + ${_common_options[@]} \ + '*:wiki pages:($(__fossil_wiki_pages))' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil remote # +######################################## +function __fossil_remote() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + add delete list off + + ;; + (options) + case $line[1] in + (add) + _arguments \ + '1:name:' \ + '2:url:__fossil_urls' + + ;; + + (delete) + _arguments \ + '1:name:($(__fossil_remotes))' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil stash # +######################################## +function __fossil_stash_ids() { + fossil stash ls | grep '^\s*\d\+:' | awk -F ':' '{print $1}' | sed 's/^ *//' +} + +function __fossil_stash() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + save snapshot list ls show gshow pop apply goto drop diff gdiff + + ;; + (options) + case $line[1] in + (save|snapshot) + _arguments \ + "(-m --comment)"{-m,--comment}'[MSG Add comment]:comment:' \ + '*:files:_files' + + ;; + (list|ls) + _arguments \ + "(-v --verbose)"{-v,--verbose}'[Show info about individual files]' \ + "(-W --width)"{-W,--width}'[N Set width]:number:' + + ;; + (show|cat|diff|gdiff) + _arguments \ + ${_fossil_diff_options[@]} \ + '1::stash ID:($(__fossil_stash_ids))' + + ;; + (apply|goto) + _arguments \ + '1::stash ID:($(__fossil_stash_ids))' + + ;; + (drop|rm) + _arguments \ + "(-a --all)"{-a,--all}'[Forget the whole stash (CANNOT UNDO!)]' \ + '1::stash ID:($(__fossil_stash_ids))' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil tag # +######################################## +function __fossil_tag() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + add cancel find list ls + + ;; + (options) + case $line[1] in + (add) + _arguments \ + ${_common_options[@]} \ + "(--help --raw)"--raw'[Raw tag name]' \ + "(--help --propagate)"--propagate'[Propagating tag]' \ + "(--help --date-override)"--date-override'[DATETIME Set date and time added]:datetime:' \ + "(--help --user-override)"--user-override'[USER Name USER when adding the tag]:user:($(__fossil_users))' \ + "(--help --dryrun -n)"{--dryrun,-n}'[Display the tag text, but do not]' \ + '1:tag name:($(__fossil_tags))' \ + '2:check-in:' \ + '3::value:' + + ;; + (cancel) + _arguments \ + ${_common_options[@]} \ + "(--help --raw)"--raw'[Raw tag name]' \ + "(--help --date-override)"--date-override'[DATETIME Set date and time deleted]:datetime:' \ + "(--help --user-override)"--user-override'[USER Name USER when deleting the tag]:user:($(__fossil_users))' \ + "(--help --dryrun -n)"{--dryrun,-n}'[Display the control artifact, but do]' \ + '1:tag name:($(__fossil_tags))' \ + '2:check-in:' + + ;; + (find) + _arguments \ + ${_common_options[@]} \ + "(--help --raw)"--raw'[Raw tag name]' \ + "(--help -t --type)"{-t,--type}'[TYPE One of "ci", or "e"]:(ci e)' \ + "(--help -n --limit)"{-n,--limit}'[N Limit to N results]:number:' \ + '1:tag name:($(__fossil_tags))' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} \ + "(--help --raw)"--raw'[List tags raw names of tags]' \ + "(--help --tagtype)"--tagtype'[TYPE List only tags of type TYPE]:tag type:(ci e)' \ + "(--help -v --inverse)"{-v,--inverse}'[Inverse the meaning of --tagtype TYPE]' \ + '1::check-in:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil ticket # +######################################## +function __fossil_ticket() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + show list ls set change add history + + ;; + (options) + case $line[1] in + (show) + _arguments \ + ${_common_options[@]} \ + "(--help -l --limit)"{-l,--limit}'[LIMITCHAR]:limit:' \ + "(--help -q --quote)"{-q,--quote}'[]' \ + "(--help -R --repository)"{-R,--repository}'[FILE]:fossils:($(__fossil_repos))' \ + '1:report title/nr:' \ + '2::ticket filter:' + + ;; + (list|ls) + _arguments \ + ':what:(fields reports)' + + ;; + (set|change) + _arguments \ + ${_common_options[@]} \ + "(--help -q --quote)"{-q,--quote}'[]' \ + '1:ticket UUID:' \ + '*:field/value:' + + ;; + (add) + _arguments \ + ${_common_options[@]} \ + "(--help -q --quote)"{-q,--quote}'[]' \ + '*:field/value:' + + ;; + (history) + _arguments \ + ':ticket UUID:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil tls-config # +######################################## +function __fossil_tls_config() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + show remove-exception + + ;; + (options) + case $line[1] in + (remove-exception) + _arguments \ + '*:domains:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil unversioned/uv # +######################################## +function __fossil_unversioned() { + local curcontext="$curcontext" state line + typeset -A opt_args + local -a _common_options + + _common_options=( + "(--help -R --repository)"{-R,--repository}'[FILE Use FILE as the repository]:fossils:($(__fossil_repos))' + "(--help --mtime)"--mtime'[TIMESTAMP Use TIMESTAMP instead of "now"]:timestamp:' + "(-)"--help'[Show help and exit]' + ) + + _arguments -C \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + add cat edit export list ls revert remove rm delete sync touch + + ;; + (options) + case $line[1] in + (add) + _arguments \ + ${_common_options[@]} \ + "(--help --as)"--as'[UVFILE]:file:_files' \ + '*:files:_files' + + ;; + (cat) + _arguments \ + ${_common_options[@]} \ + '*:files:_files' + + ;; + (edit) + _arguments \ + ${_common_options[@]} \ + '1:file:_files' + + ;; + (export) + _arguments \ + ${_common_options[@]} \ + '1:file:_files' \ + '2:output file:_files' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} \ + "(--help --glob)"--glob'[PATTERN Show only files that match]:pattern:' \ + "(--help --like)"--like'[PATTERN Show only files that match]:pattern:' + + ;; + (revert) + _arguments \ + ${_common_options[@]} \ + "(--help -v --verbose)"{-v,--verbose}'[Extra diagnostic output]' \ + "(--help -n --dryrun)"{-n,--dryrun}'[Show what would have happened]' \ + '1::url:__fossil_urls' + + ;; + (remove|rm|delete) + _arguments \ + ${_common_options[@]} \ + "(--help --glob)"--glob'[PATTERN Remove files that match]:pattern:' \ + "(--help --like)"--like'[PATTERN Remove files that match]:pattern:' \ + '*:files:_files' + + ;; + (sync) + _arguments \ + ${_common_options[@]} \ + "(--help -v --verbose)"{-v,--verbose}'[Extra diagnostic output]' \ + "(--help -n --dryrun)"{-n,--dryrun}'[Show what would have happened]' \ + '1::url:__fossil_urls' + + ;; + (touch) + _arguments \ + ${_common_options[@]} \ + '*:files:_files' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil user # +######################################## +function __fossil_user() { + local curcontext="$curcontext" state line + typeset -a opt_args + local -a _common_options + + _common_options=( + "(--help -R --repository)"{-R,--repository}'[FILE Apply command to repository FILE]:fossils:($(__fossil_repos))' + "(-)"--help'[show help and exit]' + ) + + _arguments -c \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + capabilities default list ls new password + + ;; + (options) + case $line[1] in + (capabilities) + _arguments \ + ${_common_options[@]} \ + '1:user:($(__fossil_users))' \ + '2::string:' + + ;; + (default) + _arguments \ + ${_common_options[@]} \ + '1::user:($(__fossil_users))' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} + + ;; + (new) + _arguments \ + ${_common_options[@]} \ + '1::username:' \ + '2::contact info:' \ + '3::password:' + + ;; + (password) + _arguments \ + ${_common_options[@]} \ + '1:user:($(__fossil_users))' \ + '2::password:' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + +######################################## +# fossil wiki # +######################################## +function __fossil_wiki() { + local curcontext="$curcontext" state line + typeset -a opt_args + local -a _common_options + + _common_options=( + "(-)"--help'[show help and exit]' + ) + + _arguments -c \ + ${_common_options[@]} \ + '1:subcommand:->subcommand' \ + '*::options:->options' + + case $state in + (subcommand) + _values 'subcommand' \ + export create commit list + + ;; + (options) + case $line[1] in + (export) + _arguments \ + ${_common_options[@]} \ + "(--help --technote -t)"{--technote,-t}'[DATETIME|TECHNOTE-ID Export a technote]:datetime/technote-id:(now)' \ + "(--help -h --html -H --HTML)"--html'[Render only HTML body]' \ + "(--help -H --HTML -h --html)"--HTML'[Like -h|-html but wraps the output in /]' \ + "(--help -p --pre)"{-p,--pre}'[Wrap into
...
]' \ + '::pagename:($(__fossil_wiki_pages))' \ + '::file:_files' + + ;; + (create|commit) + _arguments \ + ${_common_options[@]} \ + "(--help -M --mimetype)"{-M,--mimetype}'[TEXT-FORMAT The mime type of the update]:mimetype:' \ + "(--help --technote -t)"{--technote,-t}'[DATETIME|TECHNOTE-ID]:datetime/technote-id:(now)' \ + "(--help --technote-tags)"--technote-tags'[TAGS The set of tags for a technote]:tags:' \ + "(--help --technote-bgcolor)"--technote-bgcolor'[COLOR The color used for the technote]:color:' \ + '1:pagename:($(__fossil_wiki_pages))' \ + '2::file:_files' + + ;; + (list|ls) + _arguments \ + ${_common_options[@]} \ + "(--help -t --technote)"{-t,--technote}'[List technotes]' \ + "(--help -s --show-technote-ids)"{-s,--show-technote-ids}'[The id of the tech note will be listed]' + + ;; + *) + _message 'no more arguments' + + ;; + esac + ;; + esac + return 0 +} + + +######################################## +# fossil test commands # +######################################## + +function __fossil_complete_test_commands() { + case $line[1] in + (test-add-alerts) + _arguments \ + "(--help --backoffice)"--backoffice'[Run alert_backoffice() after all alerts have been added]' \ + "(--help --debug)"--debug'[Like --backoffice, but print to stdout]' \ + "(--help --digest)"--digest'[Process emails using SENDALERT_DIGEST]' \ + '(- *)'--help'[Show help and exit]' \ + '*:event IDs:' + + ;; + (test-agg-cksum) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-alert) + _arguments \ + "(--help --digest)"--digest'[Generate digest alert text]' \ + "(--help --needmod)"--needmod'[Assume all events are pending moderator approval]' \ + '(- *)'--help'[Show help and exit]' \ + '*:event IDs:' + + ;; + (test-all-help) + _arguments \ + "(--help -e --everything)"{-e,--everything}'[Show all commands and pages]' \ + "(--help -t --test)"{-t,--test}'[Include test- commands]' \ + "(--help -w --www)"{-w,--www}'[Show WWW pages]' \ + "(--help -s --settings)"{-s,--settings}'[Show settings]' \ + "(--help -h --html)"{-h,--html}'[Transform output to HTML]' \ + "(--help -r --raw)"{-r,--raw}'[No output formatting]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-ambiguous) + _arguments \ + "(--help --minsize)"--minsize'[N Show hases with N characters or more]:number:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-ancestor-path) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:version 1:' \ + '2:version 2:' + + ;; + (test-approx-match) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-backlinks) + _arguments \ + "(--help --mtime)"--mtime'[DATETIME Use an alternative date/time]:datetime:' \ + "(--help --mimetype)"--mimetype'[TYPE Use an alternative mimetype]:mimetype:' \ + '(- *)'--help'[Show help and exit]' \ + '1:srctype:' \ + '2:srcid:' \ + '3:input file:_files' + + ;; + (test-backoffice-lease) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-builtin-get) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:name:' \ + '2::output file:_files' + + ;; + (test-builtin-list) + _arguments \ + "(--help --verbose)"--verbose'[Output total item count and size]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-canonical-name) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-captcha) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:numbers:' + + ;; + (test-ci-mini) + _arguments \ + "(--help --repository -R)"{--repository,-R}'[REPO The repository file to commit to]:fossils:($(__fossil_repos))' \ + "(--help --as)"--as'[FILENAME The repository-side name of the input file]:file:_files' \ + "(--help --comment -m)"{--comment,-m}'[COMMENT Required checkin comment]:comment:' \ + "(--help --comment-file -M)"{--comment-file,-M}'[FILE Reads checkin comment from the given file]:file:_files' \ + "(--help --revision -r)"{--revision,-r}'[VERSION Commit from this version]:version:' \ + "(--help --allow-fork)"--allow-fork'[Allow commit against a non-leaf parent]' \ + "(--help --allow-merge-conflict)"--allow-merge-conflict'[Allow checkin of a file with conflict markers]' \ + "(--help --user-override)"--user-override'[USER User to use instead of the default]:user:($(__fossil_users))' \ + "(--help --date-override)"--date-override'[DATETIME Date to use instead of '"'"'now'"'"']:datetime:(now)' \ + "(--help --allow-older)"--allow-older'[Allow a commit to be older than its ancestor]' \ + "(--help --convert-eol-inherit)"--convert-eol-inherit'[Inherit EOL style from previous content]' \ + "(--help --convert-eol-unix)"--convert-eol-unix'[Convert the EOL style to Unix]' \ + "(--help --convert-eol-windows)"--convert-eol-windows'[Convert the EOL style to Windows]' \ + "(--help --delta)"--delta'[Prefer to generate a delta manifest]' \ + "(--help --allow-new-file)"--allow-new-file'[Allow addition of a new file this way]' \ + "(--help --dump-manifest -d)"{--dump-manifest,-d}'[Dumps the generated manifest to stdout]' \ + "(--help --save-manifest)"--save-manifest'[FILE Saves the generated manifest to a file]:file:_files' \ + "(--help --wet-run)"--wet-run'[Disables the default dry-run mode]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-clusters) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-command-stats) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-comment-format) + _arguments \ + "(--help --file)"--file'[The comment text is really just a file name to read it from]' \ + "(--help --decode)"--decode'[Decode the text using the same method used for a C-card from a manifest]' \ + "(--help --legacy)"--legacy'[Use the legacy comment printing algorithm]' \ + "(--help --trimcrlf)"--trimcrlf'[Enable trimming of leading/trailing CR/LF]' \ + "(--help --trimspace)"--trimspace'[Enable trimming of leading/trailing spaces]' \ + "(--help --wordbreak)"--wordbreak'[Attempt to break lines on word boundaries]' \ + "(--help --origbreak)"--origbreak'[Attempt to break when the original comment text is detected]' \ + "(--help --indent)"--indent'[NUM Number of spaces to indent]:number:' \ + "(--help -W --width)"{-W,--width}'[NUM Width of lines]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '1:prefix:' \ + '2:text:' \ + '3::origtext:' + + ;; + (test-commit-warning) + _arguments \ + "(--help --no-settings)"--no-settings'[Do not consider any glob settings]' \ + "(--help -v --verbose)"{-v,--verbose}'[Show per-file results for all pre-commit checks]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-compress) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:input file:_files' \ + '2:output file:_files' + + ;; + (test-compress-2) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:input file 1:_files' \ + '2:input file 2:_files' \ + '3:output file:_files' + + ;; + (test-contains-selector) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:css selector:' + + ;; + (test-content-deltify) + _arguments \ + "(--help --force)"--force'[]' \ + '(- *)'--help'[Show help and exit]' \ + '1:rid:' \ + '*:src id:' + + ;; + (test-content-erase) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:rid:' + + ;; + (test-content-put) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-content-rawget) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-content-undelta) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:record id:' + + ;; + (test-convert-stext) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:mimetype:' + + ;; + (test-create-clusters) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-crosslink) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:record id:' + + ;; + (test-cycle-compress) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-database-names) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-date-format) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:date string:' + + ;; + (test-db-exec-error) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-decode-email) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-decode64) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:string:' + + ;; + (test-delta) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:file:_files' + + ;; + (test-delta-analyze) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:file:_files' + + ;; + (test-delta-apply) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:delta:_files' + + ;; + (test-delta-create) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:file:_files' \ + '3:delta:_files' + + ;; + (test-describe-artifacts) + _arguments \ + "(--help --from)"--from'[S An artifact]:artifact:' \ + "(--help --count)"--count'[N Number of artifacts]:number:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-detach) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1::fossils:($(__fossil_repos))' + + ;; + (test-diff) + _arguments \ + ${_fossil_diff_options[@]} \ + '1:file 1:_files' \ + '2:file 2:_files' + + ;; + (test-dir-size) + _arguments \ + "(--help --nodots)"--nodots'[Omit files that begin with '"'"'.'"'"']' \ + '(- *)'--help'[Show help and exit]' \ + '1:directory:_files -/' \ + '2::glob pattern:' + + ;; + (test-echo) + _arguments \ + "(--help --hex)"--hex'[Show the output as hexadecimal]' \ + '(- *)'--help'[Show help and exit]' \ + '*:args:' + + ;; + (test-emailblob-refcheck) + _arguments \ + "(--help --repair)"--repair'[Fix up the enref field]' \ + "(--help --full)"--full'[Give a full report]' \ + "(--help --clean)"--clean'[Used with --repair, removes entries with enref==0]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-encode64) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:string:' + + ;; + (test-escaped-arg) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:args:' + + ;; + (test-etag) + _arguments \ + "(--help --key)"--key'[KEYNUM]:key number:' \ + "(--help --hash)"--hash'[HASH]:hash:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-file-copy) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:source:_files' \ + '2:destination:_files' + + ;; + (test-file-environment) + _arguments \ + "(--help --allow-symlinks)"--allow-symlinks'[BOOL Temporarily turn allow-symlinks on/off]:bool:(yes no)' \ + "(--help --open-config)"--open-config'[Open the configuration database first]' \ + "(--help --slash)"--slash'[Trailing slashes, if any, are retaine]' \ + "(--help --reset)"--reset'[Reset cached stat() info for each file]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-fileage) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:checkin:' + + ;; + (test-filezip) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-find-mx) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:domain:' + + ;; + (test-find-pivot) + _arguments \ + "(--help --ignore-merges)"--ignore-merges'[Ignore merges for discovering name pivots]' \ + '(- *)'--help'[Show help and exit]' \ + '*:args:' + + ;; + (test-fingerprint) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1::rcvid:' + + ;; + (test-forumthread) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:thread id:' + + ;; + (test-fossil-system) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-fuzz) + _arguments \ + "(--help --type)"--type'[TYPE]:type:(wiki markdown artifact)' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-glob) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:pattern:' \ + '2:string:' + + ;; + (test-grep) + _arguments \ + "(--help -i --ignore-case)"{-i,--ignore-case}'[Ignore case]' \ + '(- *)'--help'[Show help and exit]' \ + '1:regexp:' \ + '*:files:_files' + + ;; + (test-gzip) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-hash-color) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:tags:($(__fossil_tags))' + + ;; + (test-hash-passwords) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:fossils:($(__fossil_repos))' + + ;; + (test-html-tidy) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-html-to-text) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-html-tokenize) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-http) + _arguments \ + "(--help --th-trace)"--th-trace'[Trace TH1 execution (for debugging purposes)]' \ + "(--help --usercap)"--usercap'[CAP user capability string]:capability string:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-httpmsg) + _arguments \ + "(--help --compress)"--compress'[Use ZLIB compression on the payload]' \ + "(--help --mimetype)"--mimetype'[TYPE Mimetype of the payload]:mimetype:' \ + "(--help --out)"--out'[FILE Store the reply in FILE]:file:_files' \ + "(--help -v)"-v'[Verbose output]' \ + '(- *)'--help'[Show help and exit]' \ + '1:url:__fossil_urls' \ + '2::payload:' + + ;; + (test-integrity) + _arguments \ + "(--help -d --db-only)"{-d,--db-only}'[Run "PRAGMA integrity_check" on the database only]' \ + "(--help --parse)"--parse'[Parse all manifests, wikis, tickets, events, etc]' \ + "(--help -q --quick)"{-q,--quick}'[Run "PRAGMA quick_check" on the database only]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-is-reserved-name|test-is-ckout-db) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-ishuman) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-isspace) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-leaf-ambiguity) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:names:' + + ;; + (test-list-page) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:directory:_files -/' + + ;; + (test-list-webpage) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-loadavg) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-looks-like-utf) + _arguments \ + "(--help -n --limit)"{-n,--limit}'[NUM Repeat looks-like function NUM times]:number:' \ + "(--help --utf8)"--utf8'[Ignoring BOM and file size, force UTF-8 checking]' \ + "(--help --utf16)"--utf16'[Ignoring BOM and file size, force UTF-16 checking]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-mailbox-hashname) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:human name:' + + ;; + (test-markdown-render) + _arguments \ + "(--help --safe)"--safe'[Restrict the output to use only "safe" HTML]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-match) + _arguments \ + "(--help --begin)"--begin'[TEXT Text to insert before each match]:text:' \ + "(--help --end)"--end'[TEXT Text to insert after each match]:text:' \ + "(--help --gap)"--gap'[TEXT Text to indicate elided content]:text:' \ + "(--help --html)"--html'[Input is HTML]' \ + "(--help --static)"--static'[Use the static Search object]' \ + '(- *)'--help'[Show help and exit]' \ + '1:search string:' \ + '*:files:_files' + + ;; + (test-mimetype) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-missing) + _arguments \ + "(--help --notshunned)"--notshunned'[Do not report shunned artifacts]' \ + "(--help --quiet)"--quiet'[Only show output if there are errors]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-move-repository) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:pathname:_files' + + ;; + (test-name-changes) + _arguments \ + "(--help --debug)"--debug'[Enable debugging]' \ + '(- *)'--help'[Show help and exit]' \ + '1:version 1:' \ + '2:version 2:' + + ;; + (test-name-to-id) + _arguments \ + "(--help --count)"--count'[N Repeat the conversion N times]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '*:name:' + + ;; + (test-obscure) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:args:' + + ;; + (test-orphans) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-parse-all-blobs) + _arguments \ + "(--help --limit)"--limit'[N Parse no more than N blobs]:number:' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-parse-manifest) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2::n:' + + ;; + (test-phantoms) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-process-id) + _arguments \ + "(--help --sleep)"--sleep'[N Sleep for N seconds before exiting]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '*:process id:' + + ;; + (test-prompt-password) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:prompt:' \ + '2:verify:(0 1 2)' + + ;; + (test-prompt-user) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:prompt:' + + ;; + (test-random-password) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1::length:' + + ;; + (test-rawdiff) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file 1:_files' \ + '2:file 2:_files' + + ;; + (test-relative-name) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-reserved-names) + _arguments \ + "(--help -omitrepo)"-omitrepo'[]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-safe-html) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-sanitize-name) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:args:' + + ;; + (test-search-stext) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:type:(c d e t w)' \ + '2:rid:' \ + '3:name:' + + ;; + (test-set-mtime) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' \ + '2:date/time:' + + ;; + (test-shortest-path) + _arguments \ + "(--help --no-merge)"--no-merge'[Follow only direct parent-child paths]' \ + '(- *)'--help'[Show help and exit]' \ + '1:version 1:' \ + '2:version 2:' + + ;; + (test-simplify-name) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-smtp-probe) + _arguments \ + "(--help --direct)"--direct'[Use DOMAIN directly without going through MX]' \ + "(--help --port)"--port'[N Talk on TCP port N]:number:' \ + '(- *)'--help'[Show help and exit]' \ + '1:domain:' \ + '2::me:' + + ;; + (test-smtp-send) + _arguments \ + "(--help --direct)"--direct'[Bypass MX lookup]' \ + "(--help --relayhost)"--relayhost'[HOST Use HOST as relay for delivery]:host:' \ + "(--help --port)"--port'[Use TCP port N instead of 25]:number:' \ + "(--help --trace)"--trace'[Show the SMTP conversation on the console]' \ + '(- *)'--help'[Show help and exit]' \ + '1:email:_files' \ + '2:from:' \ + '*:to:' + + ;; + (test-smtp-senddata) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-subtree) + _arguments \ + "(--help --branch)"--branch'[BRANCH Include only check-ins on BRANCH]:branch:($(__fossil_branches))' \ + "(--help --from)"--from'[TAG Start the subtree at TAG]:tag:($(__fossil_tags))' \ + "(--help --to)"--to'[TAG End the subtree at TAG]:tag:($(__fossil_tags))' \ + "(--help --checkin)"--checkin'[TAG The subtree is the single check-in TAG]:tag:($(__fossil_tags))' \ + "(--help --all)"--all'[Include FILE and TAG artifacts]' \ + "(--help --exclusive)"--exclusive'[Include FILES exclusively on check-ins]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-tag) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:tag:($(__fossil_tags))' \ + '2:artifact id:' \ + '3::value:' + + ;; + (test-tarball) + _arguments \ + "(--help -h --dereference)"{-h,--dereference}'[Follow symlinks; archive the files they point to]' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-tempname) + _arguments \ + "(--help --time)"--time'[SUFFIX Generate names based on the time of the day]:suffix:' \ + "(--help --tag)"--tag'[NAME Try to use NAME as the differentiator]:name:' \ + '(- *)'--help'[Show help and exit]' \ + '*:basename:' + + ;; + (test-terminal-size) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-th-eval) + _arguments \ + "(--help --cgi)"--cgi'[Include a CGI response header in the output]' \ + "(--help --http)"--http'[Include an HTTP response header in the output]' \ + "(--help --open-config)"--open-config'[Open the configuration database]' \ + "(--help --set-anon-caps)"--set-anon-caps'[Set anonymous login capabilities]' \ + "(--help --set-user-caps)"--set-user-caps'[Set user login capabilities]' \ + "(--help --th-trace)"--th-trace'[Trace TH1 execution]' \ + '(- *)'--help'[Show help and exit]' \ + '1:script:_files' + + ;; + (test-th-render) + _arguments \ + "(--help --cgi)"--cgi'[Include a CGI response header in the output]' \ + "(--help --http)"--http'[Include an HTTP response header in the output]' \ + "(--help --open-config)"--open-config'[Open the configuration database]' \ + "(--help --set-anon-caps)"--set-anon-caps'[Set anonymous login capabilities]' \ + "(--help --set-user-caps)"--set-user-caps'[Set user login capabilities]' \ + "(--help --th-trace)"--th-trace'[Trace TH1 execution]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-th-source) + _arguments \ + "(--help --cgi)"--cgi'[Include a CGI response header in the output]' \ + "(--help --http)"--http'[Include an HTTP response header in the output]' \ + "(--help --open-config)"--open-config'[Open the configuration database]' \ + "(--help --set-anon-caps)"--set-anon-caps'[Set anonymous login capabilities]' \ + "(--help --set-user-caps)"--set-user-caps'[Set user login capabilities]' \ + "(--help --th-trace)"--th-trace'[Trace TH1 execution]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-ticket-rebuild) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:ticket id:(all)' + + ;; + (test-timespan) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:timestamp:' + + ;; + (test-timewarp-list) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-topological-sort) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-tree-name) + _arguments \ + "(--help --absolute)"--absolute'[Return an absolute path instead of a relative one]' \ + "(--help --case-sensitive)"--case-sensitive'[BOOL Enable or disable case-sensitive filenames]:bool:(yes no)' \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-unclustered) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-uncompress) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:in:_files' \ + '2:out:_files' + + ;; + (test-unsent) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-urlparser) + _arguments \ + "(--help --remember)"--remember'[Store results in last-sync-url]' \ + "(--help --prompt-pw)"--prompt-pw'[Prompt for password if missing]' \ + '(- *)'--help'[Show help and exit]' \ + '1:url:__fossil_urls' + + ;; + (test-usernames) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-valid-for-windows) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-var-get) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:var:' \ + '2::file:_files' + + ;; + (test-var-list) + _arguments \ + "(--help --unset)"--unset'[Delete entries instead of displaying them]' \ + "(--help --mtime)"--mtime'[Show last modification time]' \ + '(- *)'--help'[Show help and exit]' \ + '1::pattern:' + + ;; + (test-var-set) + _arguments \ + "(--help --blob --file)"--blob'[FILE Binary file to read from]:file:_files' \ + "(--help --file --blob)"--file'[FILE File to read from]:file:_files' \ + '(- *)'--help'[Show help and exit]' \ + '1:var:' \ + '2::value:' + + ;; + (test-verify-all) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-whatis-all) + _arguments \ + '(- *)'--help'[Show help and exit]' + + ;; + (test-which) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '*:executable name:' + + ;; + (test-wiki-relink) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:wiki page:($(__fossil_wiki_pages))' + + ;; + (test-wiki-render) + _arguments \ + "(--help --buttons)"--buttons'[Set the WIKI_BUTTONS flag]' \ + "(--help --htmlonly)"--htmlonly'[Set the WIKI_HTMLONLY flag]' \ + "(--help --linksonly)"--linksonly'[Set the WIKI_LINKSONLY flag]' \ + "(--help --nobadlinks)"--nobadlinks'[Set the WIKI_NOBADLINKS flag]' \ + "(--help --inline)"--inline'[Set the WIKI_INLINE flag]' \ + "(--help --noblock)"--noblock'[Set the WIKI_NOBLOCK flag]' \ + '(- *)'--help'[Show help and exit]' \ + '1:file:_files' + + ;; + (test-without-rowid) + _arguments \ + "(--help -n --dryrun)"{-n,--dryrun}'[Just print what would happen]' \ + '(- *)'--help'[Show help and exit]' \ + '*:files:_files' + + ;; + (test-xfer) + _arguments \ + '(- *)'--help'[Show help and exit]' \ + '1:xfer message:' + + ;; + esac +} + +################################################################################ +_fossil + -- cgit v1.3.1