mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			326 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
	
		
			7.3 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 (( ! $+_svn_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/parent
 | |
|     [[ -r $parentFile ]] && compadd -X "Completing parents" $(cat $parentFile)
 | |
| }
 | |
| 
 | |
| args=( '(-)'{--help,-h}'[show help message]' )
 | |
| 
 | |
| case $cmd in
 | |
| (add)
 | |
|     args+=(
 | |
| 	'--no-recurse[do not recurse into subdirectories]'
 | |
| 	'(-q --quiet)'{--quiet,-q}'[be quiet]'
 | |
| 	'*:unknown files:_bzr_unknownFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (annotate|praise|blame)
 | |
|     args+=( '*:files:_bzr_versionedFiles' )
 | |
|     ;;
 | |
| 
 | |
| (clone|branch|get)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision]:rev:'
 | |
| 	'--basis[specify basis branch]:basis:'
 | |
| 	)
 | |
|     if (( CURRENT == 2 )); then
 | |
| 	args+=( '*:FROM_LOCATION:_files -/' )
 | |
|     elif (( CURRENT == 3 )); then
 | |
| 	args+=( '*:TO_LOCATION:_files -/' )
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
| (rename|mv)
 | |
|     if (( CURRENT == 2 )); then
 | |
| 	args+=( '*:old name:_bzr_versionedFiles' )
 | |
|     else
 | |
| 	args+=( '*:new name:' )
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
| (cat)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision]:rev:'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (root)
 | |
|     args+=( '*:file:_files' )
 | |
|     ;;
 | |
| 
 | |
| (log)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision or range]:rev or rev range:'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[show revision manifest]'
 | |
| 	'(-l --short --long)'{--long,-l}'[use long format (default)]'
 | |
| 	'(-l --long)--short[use short format]'
 | |
| 	'(-m --message)'{--message,-m}'[specify regexp]:regexp:'
 | |
| 	'--show-ids[show file IDs]'
 | |
| 	'--forward[reverse direction of revisions]'
 | |
| 	'--timezone[specify timezone for dates]:timezone:'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (resolve)
 | |
|     args+=(
 | |
| 	'--all[resolve all conflicts in this tree]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (status|st|stat)
 | |
|     args+=(
 | |
| 	'--all[include unchanged versioned files]'
 | |
| 	'--show-ids[show file IDs]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (check)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:DIR:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (mkdir|upgrade|renames)
 | |
|     args+=( '*:DIR:_files -/' )
 | |
|     ;;
 | |
| 
 | |
| (remove|rm)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (pull)
 | |
|     args+=(
 | |
| 	'--remember[Remember the specified location as a default]'
 | |
| 	'--overwrite[Ignore differences, overwrite unconditionally]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (missing)
 | |
|     args+=(
 | |
| 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
 | |
| 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 | |
| 	'(-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'
 | |
| 	'(-l --long --short --line --log-format)'{--long,-l}'[Use detailed log format. Same as "--log-format long"]'
 | |
| 	'--mine-only[Display changes in the local branch only]'
 | |
| 	'--reverse[Reverse the order of revisions]'
 | |
| 	'(-l --long --log_format)--short[Use moderately short log format. Same as "--log-format short"]'
 | |
| 	'--show-ids[show internal object ids]'
 | |
| 	'--theirs-only[Display changes in the remote branch only]'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (commit|checkin|ci)
 | |
|     args+=(
 | |
| 	'(-m --message)'{--message,-m}'[commit message]:message text:'
 | |
| 	'(-F --file)'{--file,-F}'[commit message from file]:message file:'
 | |
| 	'--unchanged[include unchanged files]'
 | |
| 	'(-v --verbose)'{--verbose,-v}'[display more information]'
 | |
| 	'*:modified files:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (conflicts|added|deleted|modified|unknowns|directories|ignored)
 | |
|     ;;
 | |
| 
 | |
| (revno|init|version)
 | |
|     ;;
 | |
| 
 | |
| (whoami)
 | |
|     args+=( '--email[only show e-mail address]' )
 | |
|     ;;
 | |
| 
 | |
| (inventory)
 | |
|     args+=(
 | |
| 	'(-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:'
 | |
| 	'*: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+=( '*:branch:_files -/' )
 | |
|     ;;
 | |
| 
 | |
| (testament)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision]:revision:'
 | |
| 	'(-l --long)'{--long,-l}'[use long format]'
 | |
| 	'*:branch:_files -/'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (revert|merge-revert)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision]:revision:'
 | |
| 	'--no-backup[skip generation of backup~ files]'
 | |
| 	'*:file:_bzr_versionedFiles'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (merge)
 | |
|     args+=(
 | |
| 	'(-r --revision)'{--revision,-r}'[revision]:revision:'
 | |
| 	'--reprocess[Reprocess to reduce spurious conflicts]'
 | |
| 	'--show-base[Show base revision text in conflicts]'
 | |
| 	'--force[ignore uncommitted changes]'
 | |
| 	'--merge-type:merge type:(diff3 merge3 weave)'
 | |
| 	'*:local repository:_files -/'
 | |
| 	)
 | |
|     _bzr_completeParents
 | |
|     ;;
 | |
| 
 | |
| (ls)
 | |
|     args+=(
 | |
| 	'(-v --verbose)'{--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]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (move)
 | |
|     if (( CURRENT == 2 )); then
 | |
| 	args+=(
 | |
| 	   '*:files:_bzr_versionedFiles'
 | |
| 	   )
 | |
|     else
 | |
| 	args=(
 | |
| 	    '*:destination dir:_files -/'
 | |
| 	    )
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
| (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+=(
 | |
| 	'--overwrite[Ignore differences, overwrite unconditionally]'
 | |
| 	'*: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]'
 | |
| 	)
 | |
|     ;;
 | |
| 
 | |
| (*)
 | |
|     _message "unknown bzr command completion: $cmd"
 | |
|     return 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| _arguments -s "$args[@]" && ret=0
 | |
| return ret
 |