mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-18 20:47:53 +00:00
Create a bash completion script.
Just adding it to the repo, but it still needs to be dealt with during install. Probably put it in $ZT_HOME and then symlink to the proper place for the distro? searches $ZT_HOME/networks.d/ for network IDs searches HISTORY for 16 digit numbers that look like network IDs.
This commit is contained in:
parent
ff50762649
commit
c92e030a4b
57
zerotier-cli-completion.bash
Normal file
57
zerotier-cli-completion.bash
Normal file
@ -0,0 +1,57 @@
|
||||
#compdef zerotier-cli
|
||||
#autoload
|
||||
|
||||
|
||||
_get_network_ids ()
|
||||
{
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
COMPREPLY=($(compgen -W "$(ls -1 /Library/Application\ Support/ZeroTier/One/networks.d | cut -c 1-16)" -- ${cur}))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(ls -1 /var/lib/zerotier-one/networks.d | cut -c 1-16)" -- ${cur}))
|
||||
fi
|
||||
}
|
||||
|
||||
_get_network_ids_from_history ()
|
||||
{
|
||||
COMPREPLY=($(compgen -W "$(fc -l -1000 -1 | sed -n 's/.*\([[:xdigit:]]\{16\}\).*/\1/p')" -- ${cur}))
|
||||
}
|
||||
|
||||
_zerotier-cli_completions()
|
||||
{
|
||||
local cur prev
|
||||
|
||||
cur=${COMP_WORDS[COMP_CWORD]}
|
||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
|
||||
case ${COMP_CWORD} in
|
||||
1)
|
||||
COMPREPLY=($(compgen -W "info listpeers peers listnetworks join leave set get listmoons orbit deorbit" -- ${cur}))
|
||||
;;
|
||||
2)
|
||||
case ${prev} in
|
||||
leave)
|
||||
_get_network_ids
|
||||
;;
|
||||
join)
|
||||
_get_network_ids_from_history
|
||||
;;
|
||||
set)
|
||||
_get_network_ids
|
||||
;;
|
||||
get)
|
||||
_get_network_ids
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=()
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=()
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
complete -F _zerotier-cli_completions zerotier-cli
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user