mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +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|cdiff)
 | 
						|
    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
 |