update kerl
parent
f94b51f313
commit
a138bfcd99
|
@ -0,0 +1,83 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# bash_completion for kerl
|
||||||
|
|
||||||
|
_kerl()
|
||||||
|
{
|
||||||
|
local cur prev
|
||||||
|
if type _get_comp_words_by_ref &>/dev/null ; then
|
||||||
|
_get_comp_words_by_ref cur prev
|
||||||
|
else
|
||||||
|
cur=$2 prev=$3
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $prev in
|
||||||
|
kerl)
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W 'build install update list delete active path status' -- "$cur" )
|
||||||
|
;;
|
||||||
|
list)
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W 'releases builds installations' -- "$cur" )
|
||||||
|
;;
|
||||||
|
build)
|
||||||
|
if [ "$COMP_CWORD" -eq 2 ]; then
|
||||||
|
if [ -f "$HOME"/.kerl/otp_releases ]; then
|
||||||
|
RELEASES=$(cat "$HOME"/.kerl/otp_releases)
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "git $RELEASES" -- "$cur")
|
||||||
|
else
|
||||||
|
if [ -f "$HOME"/.kerl/otp_builds ]; then
|
||||||
|
BUILDS=$(cut -d ',' -f 2 "$HOME"/.kerl/otp_builds)
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "$BUILDS" -- "$cur")
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
installation)
|
||||||
|
if [ -f "$HOME"/.kerl/otp_installations ]; then
|
||||||
|
PATHS=$(cut -d ' ' -f 2 "$HOME"/.kerl/otp_installations)
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "$PATHS" -- "$cur")
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
if [ -f "$HOME"/.kerl/otp_builds ]; then
|
||||||
|
BUILDS=$(cut -d ',' -f 2 "$HOME"/.kerl/otp_builds)
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "$BUILDS" -- "$cur")
|
||||||
|
;;
|
||||||
|
path)
|
||||||
|
INSTALL_LIST="$HOME"/.kerl/otp_installations
|
||||||
|
if [ -f "$INSTALL_LIST" ]; then
|
||||||
|
NAMES=$(cut -d ' ' -f 2 "$INSTALL_LIST" | xargs basename)
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "$NAMES" -- "$cur")
|
||||||
|
;;
|
||||||
|
deploy)
|
||||||
|
if [ "$COMP_CWORD" -eq 3 ]; then
|
||||||
|
if [ -f "$HOME"/.kerl/otp_installations ]; then
|
||||||
|
PATHS=$(cut -d ' ' -f 2 "$HOME"/.kerl/otp_installations)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W "$PATHS" -- "$cur")
|
||||||
|
;;
|
||||||
|
delete)
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W 'build installation' -- "$cur")
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
mapfile -t COMPREPLY < <( compgen -W 'releases' -- "$cur")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ "$COMP_CWORD" -eq 3 ]; then
|
||||||
|
if [ -f "$HOME"/.kerl/otp_builds ]; then
|
||||||
|
BUILDS=$(cut -d ',' -f 2 "$HOME"/.kerl/otp_builds)
|
||||||
|
fi
|
||||||
|
if [ -n "$BUILDS" ]; then
|
||||||
|
for b in $BUILDS; do
|
||||||
|
if [ "$prev" = "$b" ]; then
|
||||||
|
_filedir
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
complete -F _kerl kerl
|
Reference in New Issue