]> git.meshlink.io Git - meshlink/blobdiff - bash_completion.d/tinc
We dont check the name in the config file but the name in the handler. This is becaus...
[meshlink] / bash_completion.d / tinc
index dd41874cdb724c937dc9c3a792b882e73e5818ac..8145d43f8e4741396e283fc38e094c10f0a3eadd 100644 (file)
@@ -4,8 +4,8 @@ _tinc() {
        cur="${COMP_WORDS[COMP_CWORD]}"
        prev="${COMP_WORDS[COMP_CWORD-1]}"
        opts="-c -d -D -K -n -o -L -R -U --config --no-detach --debug --net --option --mlock --logfile --pidfile --chroot --user --help --version"
-       confvars="Address AddressFamily BindToAddress BindToInterface Broadcast Cipher ClampMSS Compression ConnectTo DecrementTTL Device DeviceType Digest DirectOnly ECDSAPrivateKeyFile ECDSAPublicKey ECDSAPublicKeyFile ExperimentalProtocol Forwarding GraphDumpFile Hostnames IffOneQueue IndirectData Interface KeyExpire LocalDiscovery MACExpire MACLength MaxOutputBufferSize MaxTimeout Mode Name PMTU PMTUDiscovery PingInterval PingTimeout Port PriorityInheritance PrivateKeyFile ProcessPriority Proxy PublicKeyFile ReplayWindow StrictSubnets Subnet TCPOnly TunnelServer UDPRcvBuf UDPSndBuf VDEGroup VDEPort Weight"
-       commands="config connect debug disconnect dump edit export export-all generate-ecdsa-keys generate-keys generate-rsa-keys help import info init log pcap pid purge reload restart retry start stop top version"
+       confvars="Address AddressFamily BindToAddress BindToInterface Broadcast Cipher ClampMSS Compression ConnectTo DecrementTTL Device DeviceType Digest DirectOnly ECDSAPrivateKeyFile ECDSAPublicKey ECDSAPublicKeyFile ExperimentalProtocol Forwarding GraphDumpFile Hostnames IffOneQueue IndirectData Interface KeyExpire ListenAddress LocalDiscovery MACExpire MACLength MaxOutputBufferSize MaxTimeout Mode Name PMTU PMTUDiscovery PingInterval PingTimeout Port PriorityInheritance PrivateKeyFile ProcessPriority Proxy PublicKeyFile ReplayWindow StrictSubnets Subnet TCPOnly TunnelServer UDPRcvBuf UDPSndBuf VDEGroup VDEPort Weight"
+       commands="add connect debug del disconnect dump edit export export-all generate-ecdsa-keys generate-keys generate-rsa-keys get help import info init invite join log network pcap pid purge reload restart retry set start stop top version"
 
        case ${prev} in
                -c|--config)
@@ -53,17 +53,26 @@ _tinc() {
        fi
        COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
        case $prev in
-               config)
-               COMPREPLY=( $(compgen -W "get set add del ${confvars}" -- ${cur}) )
-               return 0
-               ;;
                get|set|add|del)
                COMPREPLY=( $(compgen -W "${confvars}" -- ${cur}) )
+               return 0
                ;;
                dump|reachable)
                COMPREPLY=( $(compgen -W "reachable nodes edges subnets connections graph" -- ${cur}) )
                return 0
                ;;
+               network)
+               nets=""
+               pushd /etc/tinc >/dev/null 2>/dev/null
+               for dir in *; do
+                       if [[ -f "$dir/tinc.conf" ]]; then
+                               nets="$nets $dir"
+                       fi
+               done
+               popd >/dev/null 2>/dev/null
+               COMPREPLY=( $(compgen -W "${nets}" -- ${cur}) )
+               return 0
+               ;;
        esac
        if [[ -z ${cur} ]] ; then 
                COMPREPLY=( $(compgen -W "${opts} ${commands}" -- ${cur}) )
@@ -80,4 +89,4 @@ _tincctl() {
 }
 
 complete -F _tincd tincd
-complete -F _tincctl tincctl
+complete -F _tincctl tinc