-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobos-strap-bash_autocomplete
More file actions
executable file
·69 lines (64 loc) · 1.99 KB
/
Copy pathobos-strap-bash_autocomplete
File metadata and controls
executable file
·69 lines (64 loc) · 1.99 KB
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
_foo()
{
local cmd cur prev opts packages recipes
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
cmd="${COMP_WORDS[1]}"
opts="build clean build-all install-all rebuild setup-env force-unlock install chroot run update install-bin-pkg outdated list start-proc"
export old_comp_wordbreaks="$COMP_WORDBREAKS"
packages=""
recipes=`ls -c1 recipes/*`
for line in $recipes; do
unset PACKAGE
PACKAGE=$line
PACKAGE=${PACKAGE%%.json}
PACKAGE=${PACKAGE#recipes/}
packages="$packages $PACKAGE "
done
if [[ "${cmd}" == "build" || "${cmd}" == "install" || "${cmd}" == "rebuild" || "${cmd}" == "run" || "${cmd}" == "outdated" || "${cmd}" == "install-bin-pkg" ]];
then
if [[ $COMP_CWORD > 2 ]]
then
unset COMPREPLY
return 0
fi
COMPREPLY=( $(compgen -W "${packages}" -- ${cur}) )
return 0
elif [[ "${cmd}" == "force-unlock" || "${cmd}" == "setup-env" || "${cmd}" == "update" || "${cmd}" == "install-all" || "${cmd}" == "build-all" ||
"${cmd}" == "clean" ]]
then
unset COMPREPLY
return 0
elif [[ "${cmd}" == "chroot" || "${cmd}" == "start-proc" ]]
then
if [[ $COMP_CWORD > 2 ]]
then
unset COMPREPLY
return 0
fi
compopt -o default
COMPREPLY=()
return 0
elif [[ "${cmd}" == "list" ]]
then
subopts="verbose=true verbose=false installed-only=true installed-only=false ${packages}"
COMP_WORDBREAKS=${COMP_WORDBREAKS//=/}
COMPREPLY=( $(compgen -W "${subopts}" -- ${cur}) )
return 0
else
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _foo obos-strap
case $OSTYPE in
"mingw*" | "msys2" | "win32" | "cygwin")
complete -F _foo obos-strap.exe
;;
esac
if [[ -v old_comp_wordbreaks ]]
then
COMP_WORDBREAKS="${old_comp_wordbreaks}"
fi
return 0