mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 18:10:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			406 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			406 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef bzr
 | |
| 
 | |
| # bzr is the bazaar-ng revision-control system
 | |
| 
 | |
| local curcontext="$curcontext" state line expl cmd args ret=1
 | |
| typeset -A opt_args
 | |
| 
 | |
| _arguments -C \
 | |
|     '1: :->cmd' \
 | |
|     '*:: :->args' && ret=0
 | |
| 
 | |
| if (( ! $+_bzr_cmds )); then
 | |
|     typeset -gH _bzr_cmds
 | |
|     _bzr_cmds=(${(f)"$(_call_program bzr bzr shell-complete)"})
 | |
| fi
 | |
| 
 | |
| if [[ $state != 'args' ]]; then
 | |
|     _describe -t subcommand 'subcommand' _bzr_cmds
 | |
|     return 0
 | |
| fi
 | |
| 
 | |
| cmd="$words[1]"
 | |
| curcontext="${curcontext%:*:*}:bzr-$cmd:"
 | |
| 
 | |
| (( $+functions[_bzr_unknownFiles] )) ||
 | |
| _bzr_unknownFiles() {
 | |
|     local fileList
 | |
|     fileList=(${(ps:\0:)"$(bzr ls --null --unknown)"})
 | |
|     compadd -af fileList
 | |
|     return 0
 | |
| }
 | |
| 
 | |
| (( $+functions[_bzr_unknownRoot] )) ||
 | |
| _bzr_unknownRoot() {
 | |
|     local fileList
 | |
|     fileList=(${(ps:\0:)"$(bzr ls --null --from-root --unknown)"})
 | |
|     compadd -af fileList
 | |
|     return 0
 | |
| }
 | |
| 
 | |
| (( $+functions[_bzr_versionedFiles] )) ||
 | |
| _bzr_versionedFiles() {
 | |
|     local fileList
 | |
|     fileList=(${(ps:\0:)"$(bzr ls --null --versioned)"})
 | |
|     compadd -af fileList
 | |
|     return 0
 | |
| }
 | |
| 
 | |
| (( $+functions[_bzr_completeParents] )) ||
 | |
| _bzr_completeParents() {
 | |
|     local parentFile=$(bzr root 2>/dev/null)/.bzr/branch/parent
 | |
|     [[ -r $parentFile ]] && compadd -X "Completing parents" $(cat $parentFile)
 | |
| }
 | |
| 
 | |
| args=( '(-)'{--help,-h}'[show help message]' )
 | |
| 
 | |
| case $cmd in
 | |
| (add)
 | |
|     args+=(
 | |
| 	'--dry-run[show what would be added without adding anything]'
 | |
| 	'--no-recurse[do not recurse into subdirectories]'
 | |
| 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 | |
| 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
 | |
| 	'*:unknown files:_bzr_unknownFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (annotate|blame|praise)
 | |
|     args+=(
 | |
| 	'--all[show annotations on all lines]'
 | |
| 	'--long[show date in annotations]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[the revision to show]:rev:'
 | |
| 	'*:files:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (branch|get|clone)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision=,-r}'[the revision to get]:rev:'
 | |
| 	'--basis=[specify basis branch]:basis:'
 | |
| 	)
 | |
|     if (( CURRENT == 2 )); then
 | |
| 	args+=( '*:FROM_LOCATION:_files -/' )
 | |
|     elif (( CURRENT == 3 )); then
 | |
| 	args+=( '*:TO_LOCATION:_files -/' )
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
| (checkout|co)
 | |
|     args+=(
 | |
| 	'--lightweight[perform a lightweight checkout]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[the revision to get]:rev:'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (rename|move|mv)
 | |
|     if (( CURRENT == 2 )); then
 | |
| 	args+=( '*:files:_bzr_versionedFiles' )
 | |
|     else
 | |
| 	args=( '*:destination dir:_files -/' )
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
| (cat)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:rev:'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (root)
 | |
|     args+=( '*:file:_files' )
 | |
|     ;;
 | |
| 
 | |
| (log)
 | |
|     args+=(
 | |
| 	'--forward[reverse direction of revisions]'
 | |
| 	'(-l --long --short --log_format)--line[Use log format with one line per revision. Same as "--log-format line"]'
 | |
| 	'(-l --long --short --line)--log-format=[Use the specified log format]:log format:(line short long)'
 | |
| 	'(-l --long --short --line --log-format)'{--long,-l}'[Use detailed log format. Same as "--log-format long"]'
 | |
| 	'(-l --long --log_format)--short[Use moderately short log format. Same as "--log-format short"]'
 | |
| 	'(-m --message)'{--message=,-m}'[specify regexp]:regexp:'
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision or range]:rev or rev range:'
 | |
| 	'--show-ids[show file IDs]'
 | |
| 	'--timezone=[specify timezone for dates]:timezone:'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[show revision manifest]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (resolve|resolved)
 | |
|     args+=(
 | |
| 	'--all[resolve all conflicts in this tree]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (status|st|stat)
 | |
|     args+=(
 | |
| 	'--all[include unchanged versioned files]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[compare working tree with revision]:revision:'
 | |
| 	'--show-ids[show file IDs]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (check)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:DIR:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (mkdir|renames|update)
 | |
|     args+=( '*:DIR:_files -/' )
 | |
|     ;;
 | |
| 
 | |
| (init|upgrade)
 | |
|     args+=(
 | |
| 	'--format=[format for repository]:format:(default knit metaweave weave)'
 | |
| 	'*:DIR:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (init-repo|init-repository)
 | |
|     args+=(
 | |
| 	'--format=[format for repository]:format:(default knit metaweave weave)'
 | |
| 	'--trees[allows branches in repository to have a working tree]'
 | |
| 	'*:DIR:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (remove|rm)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (pull)
 | |
|     args+=(
 | |
| 	'--overwrite[Ignore differences, overwrite unconditionally]'
 | |
| 	'--remember[Remember the specified location as a default]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[get a particular revision]:revision:'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (missing)
 | |
|     args+=(
 | |
| 	'(-l --long --short --log_format)--line[Use log format with one line per revision. Same as "--log-format line"]'
 | |
| 	'(-l --long --short --line)--log-format=[Use the specified log format]:log format:(line short long)'
 | |
| 	'(-l --long --short --line --log-format)'{--long,-l}'[Use detailed log format. Same as "--log-format long"]'
 | |
| 	'(-l --long --log_format)--short[Use moderately short log format. Same as "--log-format short"]'
 | |
| 	'--mine-only[Display changes in the local branch only]'
 | |
| 	'--reverse[Reverse the order of revisions]'
 | |
| 	'--show-ids[show internal object ids]'
 | |
| 	'--theirs-only[Display changes in the remote branch only]'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (commit|checkin|ci)
 | |
|     args+=(
 | |
| 	'(-F --file)'{--file=,-F}'[commit message from file]:message file:'
 | |
| 	'--local[perform a local only commit in a bound branch]'
 | |
| 	'(-m --message)'{--message=,-m}'[commit message]:message text:'
 | |
| 	'--strict[refuse to commit if there are unknown files]'
 | |
| 	'--unchanged[include unchanged files]'
 | |
| 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 | |
| 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
 | |
| 	'*:modified files:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (bind|break-lock|reconcile)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (register-branch)
 | |
|     args+=(
 | |
| 	'--author=[email of the branch author, if not you]:email:'
 | |
| 	'--branch-description=[longer description of the branch]:description:'
 | |
| 	'--branch-name=[short name for the branch]:name:'
 | |
| 	'--branch-title=[one-sentence description of the branch]:title:'
 | |
| 	'--dry-run[prepare the request but do not actually send it]'
 | |
| 	'--link-bug=[the bug this branch fixes]:bug-ID:'
 | |
| 	'--product=[launchpad product short name to associate with the branch]:product:'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (remerge)
 | |
|     args+=(
 | |
| 	'--merge-type=[the type of the merge]:type:'
 | |
| 	'--reprocess[Reprocess to reduce spurious conflicts]'
 | |
| 	'--show-base[Show base revision text in conflicts]'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (conflicts|added|deleted|modified|unknowns|directories|ignored|unbind|nick|revno|version)
 | |
|     ;;
 | |
| 
 | |
| (whoami)
 | |
|     args+=( '--email[only show e-mail address]' )
 | |
|     ;;
 | |
| 
 | |
| (inventory)
 | |
|     args+=(
 | |
| 	'--kind=[limit output by type]:kind:(file directory symlink)'
 | |
| 	'(-r --revision)'{--revision=,-r}'[show inventory of a revision]:revision:'
 | |
| 	'--show-ids[show file IDs]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (diff|dif|di)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'--diff-options=[options to pass to gdiff]:diff options:'
 | |
| 	'(-p --prefix)'{--prefix,-p}'[set prefix added to old and new filenames]'
 | |
| 	'*:files:_files'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (export)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'--format=[format of exported file]:format:(dir tar tgz tbz2)'
 | |
| 	'--root=[root directory of patch]:_files -/'
 | |
| 	'*:destination:_files'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (ignore)
 | |
|     args+=( '*:NAME_PATTERN:_bzr_unknownRoot' )
 | |
|     ;;
 | |
| 
 | |
| (info)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:branch:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (testament)
 | |
|     args+=(
 | |
| 	'(-l --long)'{--long,-l}'[use long format]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'*:branch:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (revert|merge-revert)
 | |
|     args+=(
 | |
| 	'--no-backup[skip generation of backup~ files]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (merge)
 | |
|     args+=(
 | |
| 	'--force[ignore uncommitted changes]'
 | |
| 	'--merge-type:merge type:(diff3 merge3 weave)'
 | |
| 	'--remember[Remember the specified location as a default]'
 | |
| 	'--reprocess[Reprocess to reduce spurious conflicts]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'--show-base[Show base revision text in conflicts]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (ls)
 | |
|     args+=(
 | |
| 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 | |
| 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 | |
| 	'--from-root[Print all paths from the root of the branch]'
 | |
| 	'--non-recursive[Do not recurse into subdirectories]'
 | |
| 	'--null[Null separate the files]'
 | |
| 	'--ignored[Print ignored files]'
 | |
| 	'--unknown[Print unknown files]'
 | |
| 	'--versioned[Print versioned files]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (switch)
 | |
|     args+=(
 | |
| 	'--force[Switch even if local commits will be lost]'
 | |
| 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 | |
| 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (help)
 | |
|     args=(
 | |
| 	'(-l --long)'{--long,-l}'[use long format]'
 | |
| 	'*:subcmds:->cmds'
 | |
| 	)
 | |
|     _arguments -s "$args[@]" && ret=0
 | |
|     _describe -t subcommand 'subcommand' _bzr_cmds
 | |
|     return 0
 | |
|     ;;
 | |
| 
 | |
|     # Plugins
 | |
| 
 | |
| (visualize|visualise|viz|vis)
 | |
|     args+=( '(-r --revision)'{--revision=,-r}'[starting revision]:rev:' )
 | |
|     ;;
 | |
| 
 | |
| (gannotate|gblame|gpraise)
 | |
|     args+=(
 | |
| 	'--all[show annotations on all lines]'
 | |
| 	'--plain[do not hightlight annotation lines]'
 | |
| 	'*:files:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (push)
 | |
|     args+=(
 | |
| 	'--create-prefix[Create the path leading up to the branch when missing]'
 | |
| 	'--overwrite[Ignore differences, overwrite unconditionally]'
 | |
| 	'--remember[Remember the specified location as a default]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (clean-tree)
 | |
|     args+=(
 | |
| 	'--dry-run[show files to delete instead of deleting them]'
 | |
| 	'--ignored[delete all ignored files]'
 | |
| 	'--detritus[delete conflict files, merge backups, failed self-tests, *~, *.tmp, etc]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (uncommit)
 | |
|     args+=(
 | |
| 	'--dry-run[do not make any changes]'
 | |
| 	'--force[say "yes" to all questions]'
 | |
| 	'(-r --revision)'{--revision=,-r}'[the earliest revision to delete]:rev:'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (sign-my-commits)
 | |
|     args+=( '--dry-run[do not actually sign anything]' )
 | |
|     ;;
 | |
| 
 | |
| (*)
 | |
|     _message "unknown bzr command completion: $cmd"
 | |
|     return 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| _arguments -s "$args[@]" && ret=0
 | |
| return $ret
 |