|
@@ -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
|
|
|
+
|
|
|
+
|