-
Notifications
You must be signed in to change notification settings - Fork 0
/
.ksh_completions
135 lines (114 loc) · 2.69 KB
/
.ksh_completions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Heavily borrowed from:
# https://github.com/qbit/dotfiles/blob/master/common/dot_ksh_completions
#
# Package Managers
# OpenBSD pkg_*
if [ -d /var/db/pkg ]; then
PKG_LIST=$(ls -1 /var/db/pkg)
set -A complete_pkg_delete -- $PKG_LIST
set -A complete_pkg_info -- $PKG_LIST
set -A complete_pkg_1 -- add check create delete info
set -A complete_pkg_2 -- $PKG_LIST
fi
# Homebrew
if [ -e /usr/local/bin/brew ]; then
PKG_LIST=$(ls -1 /usr/local/Cellar)
set -A complete_brew_1 -- \
commands \
config \
create \
doctor \
edit \
help \
info \
install \
list \
search \
uninstall \
update \
upgrade
set -A complete_brew_2 -- $PKG_LIST
fi
# / Package Managers
# ssh, scp, mosh
set -A SSH_KNOWN_HOSTS ~/.ssh/known_hosts
if [ -f /etc/ssh/ssh_known_hosts ]; then
SSH_KNOWN_HOSTS="${SSH_KNOWN_HOSTS[@]} /etc/ssh/ssh_known_hosts"
fi
HOST_LIST=$(awk \
'{split($1,a,","); gsub("].*", "", a[1]); gsub("\\[", "", a[1]); print a[1] " root@" a[1]}' \
$SSH_KNOWN_HOSTS | sort | uniq)
set -A complete_ssh -- $HOST_LIST
set -A complete_scp -- $HOST_LIST
set -A complete_mosh -- $HOST_LIST
# / ssh, scp, mosh
# Utilities
#set -A complete_man_1 -- $(MANPATH=/usr/share/man man -k Nm~. | cut -d\( -f1 | tr -d ,)
set -A complete_kill_1 -- -9 -HUP -INFO -KILL -TERM
set -A complete_ifconfig_1 -- $(ifconfig | grep ^[a-z] | cut -d: -f1)
set -A complete_signify_1 -- -C -G -S -V
set -A complete_signify_2 -- -q -p -x -c -m -t -z
set -A complete_signify_3 -- -p -x -c -m -t -z
pgrep -fq '/usr/sbin/vmd'
if [ $? = 0 ]; then
set -A complete_vmctl -- console load reload start stop reset status send receive
set -A complete_vmctl_2 -- $(vmctl status | awk '!/NAME/{print $NF}')
fi
if [ -x /usr/sbin/rcctl ]; then
set -A complete_rcctl_1 -- disable enable get ls order set restart start stop
set -A complete_rcctl_2 -- $(rcctl ls all)
fi
set -A complete_make_1 -- \
clean \
install \
port-lib-depends-check \
reinstall \
repackage
set -A complete_gpg2 -- \
--armor \
--clearsign \
--decrypt \
--detach-sig \
--list-key \
--receive-keys \
--refresh \
--sign \
--verify
if [ -f /dev/mixer ]; then
set -A complete_mixerctl_1 -- $(mixerctl | cut -d= -f 1)
fi
# / Utilities
# SCM
set -A complete_got_1 -- \
bl blame \
bo backout \
br branch \
ci commit \
co checkout \
cy cherrypick \
di diff \
he histedit \
im import \
in init \
log \
rb rebase \
ref \
rm remove \
rv revert \
sg stage \
st status \
tr tree \
ug unstage \
up update
set -A complete_git_1 -- \
checkout cherry-pick clean clone commit config \
mpull mpush \
pull push \
status
# / SCM
function reload_completions {
if [ -e ~/.ksh_completions ]; then
. ~/.ksh_completions
echo "ksh completions reloaded"
fi
}