-
Notifications
You must be signed in to change notification settings - Fork 3
/
asr
executable file
·123 lines (105 loc) · 2.33 KB
/
asr
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
# Bash completion for asr
# by Tony Williams, [email protected]
# version 0.1
# 29/06/2017
__asrcomp_words_include() {
local i=1
while [[ "$i" -lt "$COMP_CWORD" ]]
do
if [[ "${COMP_WORDS[i]}" = "$1" ]]
then
return 0
fi
i="$((++i))"
done
return 1
}
__asrcomp() {
# break $1 on space, tab, and newline characters,
# and turn it into a newline separated list of words
local list s sep=$'\n' IFS=$' '$'\t'$'\n'
local cur="${COMP_WORDS[COMP_CWORD]}"
for s in $1
do
__asrcomp_words_include "$s" && continue
list="$list$s$sep"
done
IFS="$sep"
COMPREPLY=($(compgen -W "$list" -- "$cur"))
}
_asr_help() {
return
}
_asr_version() {
return
}
_asr_restore() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__asrcomp "--source --target --file --erase --format --noprompt --timeout \
--puppetstrings --noverify −-allowfragmentedcatalog −-corestorageconvert --SHA256"
return
;;
esac
}
_asr_restoreexact() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__asrcomp "--source --target --file --erase --format --noprompt --timeout \
--puppetstrings --noverify −-allowfragmentedcatalog −-corestorageconvert --SHA256"
return
;;
esac
}
_asr_server() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__asrcomp "--source --interface --config"
return
;;
esac
}
_asr_imagescan() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__asrcomp "--nostream −-allowfragmentedcatalog"
return
;;
esac
}
_asr_info() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__asrcomp "--source --plist"
return
;;
esac
}
_asr() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ "$COMP_CWORD" = "1" ]] # we are matching the command
then
opts="help version restore restoreexact server imagescan info"
COMPREPLY=( $(compgen -W "${opts}" ${cur}) )
return 0
fi
cmd="${COMP_WORDS[1]}"
case "$cmd" in
help) _asr_help ;;
version) _asr_version ;;
restore) _asr_restore ;;
restoreexact) _asr_restoreexact ;;
server) _asr_server ;;
info) _asr_info ;;
imagescan) _asr_imagescan ;;
esac
}
complete -o bashdefault -o default -F _asr asr