! has_completion $cmd && complete -o default -A command $cmd
done
- for cmd in dig host nslookup nc netcat nmap p ping ping6 socat \
+ for cmd in dig host mtr nslookup nc netcat nmap p ping ping6 socat \
telnet t tt \
tcptraceroute tcptraceroute6 tracert tracert6 traceroute traceroute6 \
whois wget wget-m wget-wrapper ww; do
! has_completion $cmd && complete -A hostname $cmd
done
+ if has_completion wget; then
+ _wget_completion_loader() {
+ _completion_loader wget
+ complete -F _wget wget-m wget-wrapper ww
+ unset _wget_completion_loader
+ return 124
+ }
+ complete -F _wget_completion_loader wget-m wget-wrapper ww
+ fi
+
for cmd in distribute ftp lftp r rsync \
s scp ssh smbclient tcpdump tshark wireshark; do
! has_completion $cmd && complete -o default -A hostname $cmd;
done
+
+ if has_completion rsync; then
+ _rsync_completion_loader() {
+ _completion_loader rsync
+ complete -F _rsync r
+ unset _rsync_completion_loader
+ return 124
+ }
+ complete -F _rsync_completion_loader r
+ fi
+
+ if has_completion ssh; then
+ _ssh_completion_loader() {
+ _completion_loader ssh
+ complete -F _ssh s
+ unset _ssh_completion_loader
+ return 124
+ }
+ complete -F _ssh_completion_loader s
+ fi
+
+ if has_completion make; then
+ _make_completion_loader() {
+ _completion_loader make
+ complete -F _make m
+ unset _make_completion_loader
+ return 124
+ }
+ complete -F _make_completion_loader m
+ fi
+
unset has_completion
complete -A job bg fg j jobs wait
- complete -A variable unset
+ complete -A variable -A function unset
if [ -d "$HOME/lib/config" ]; then
complete -W "`cd \"$HOME/lib/config\" && echo *`" include
# A kind of pkill/killall
KillAll() {
+ if [ -z "$1" -o -n "$3" ]; then
+ echo "Usage: KillAll [-signal] proc_regexp" >&2
+ return 1
+ fi
if [ -z "$2" ]; then
kill `pidOf "$1"`
else
if test -x /usr/bin/git >/dev/null 2>&1; then
# chdir to a remote's directory (if the remote is on the local FS)
cdremote() {
+ if [ -z "$1" -o -n "$2" ]; then
+ echo "Usage: cdremote remote_name" >&2
+ return 1
+ fi
cd "`git config --get remote.$1.url`"
}
if test -n "$BASH_VERSION"; then
# completion for global aliases in .gitconfig
- # fixup rbi rbia rbiap rbip - delegate to git-rebase completion
- _git_fixup() { _git_rebase ; }
- _git_rbi() { _git_rebase ; }
- _git_rbia() { _git_rebase ; }
- _git_rbiap() { _git_rebase ; }
- _git_rbip() { _git_rebase ; }
+ # fixup rbi rbia rbiap rbip - do refs name completion
+ _git_fixup() { __gitcomp_nl "$(__git_refs)" ; }
+ _git_rbi() { __gitcomp_nl "$(__git_refs)" ; }
+ _git_rbia() { __gitcomp_nl "$(__git_refs)" ; }
+ _git_rbiap() { __gitcomp_nl "$(__git_refs)" ; }
+ _git_rbip() { __gitcomp_nl "$(__git_refs)" ; }
+ #
+ # push-to-all-remotes - do branch name completion
+ _git_push_to_all_remotes() { __gitcomp_nl "$(__git_heads)" ; }
# list remotes with URLs matching a regexp
- list_remotes() {
+ _list_remotes() {
+ if [ -z "$1" -o -n "$2" ]; then
+ echo "Usage: _list_remotes remote_regexp" >&2
+ return 1
+ fi
GIT_REMOTES=""
local remote
for remote in `git remote`; do
done
}
- # completion for cdremote - list remotes with directories as URLs
- _cdremote_complete() {
+ # completion for cdremote and git-open - list remotes with a pattern
+ _list_remotes_completion() {
local cur="${COMP_WORDS[COMP_CWORD]}";
- list_remotes '^\(/\|\.\./\)' # (/ or ../ at the beginning)
+ _list_remotes "$1"
COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
unset GIT_REMOTES
}
+ # completion for cdremote - list remotes with directories as URLs
+ _cdremote_complete() {
+ _list_remotes_completion '^\(/\|\.\./\)' # (/ or ../ at the beginning)
+ }
+
complete -F _cdremote_complete cdremote
# completion for git-open - list remotes with http(s) URLs
_git_open() {
- local cur="${COMP_WORDS[COMP_CWORD]}";
- list_remotes '^http\(s\)\?://'
- COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
- unset GIT_REMOTES
+ _list_remotes_completion '^http\(s\)\?://'
}
complete -F _git_open git-open