[Bash-completion-commits] [bash-completion] 02/02: ssh-keygen: New completion

Ville Skyttä scop-guest at moszumanska.debian.org
Tue Jan 21 18:23:04 UTC 2014


This is an automated email from the git hooks/post-receive script.

scop-guest pushed a commit to branch master
in repository bash-completion.

commit 0b7d92cf2bb3eb04668c73b6d39726caca617bf9
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Tue Jan 21 20:22:50 2014 +0200

    ssh-keygen: New completion
---
 completions/Makefile.am             |  1 +
 completions/ssh-keygen              | 48 +++++++++++++++++++++++++++++++++++++
 test/completion/ssh-keygen.exp      |  1 +
 test/lib/completions/ssh-keygen.exp | 18 ++++++++++++++
 4 files changed, 68 insertions(+)

diff --git a/completions/Makefile.am b/completions/Makefile.am
index 5abb627..be5bc26 100644
--- a/completions/Makefile.am
+++ b/completions/Makefile.am
@@ -320,6 +320,7 @@ bashcomp_DATA = 2to3 \
 		ssh \
 		ssh-add \
 		ssh-copy-id \
+		ssh-keygen \
 		sshfs \
 		sshmitm \
 		sshow \
diff --git a/completions/ssh-keygen b/completions/ssh-keygen
new file mode 100644
index 0000000..4cb3eab
--- /dev/null
+++ b/completions/ssh-keygen
@@ -0,0 +1,48 @@
+# ssh-keygen(1) completion                                 -*- shell-script -*-
+
+_ssh_keygen()
+{
+    local cur prev words cword
+    _init_completion -n = || return
+
+    case $prev in
+        -a|-b|-C|-D|-I|-J|-j|-M|-N|-n|-r|-P|-S|-V|-W|-z)
+            return
+            ;;
+        -F|-R)
+            # TODO: trim this down to actual entries in known hosts files
+            _known_hosts_real "$cur"
+            return
+            ;;
+        -f|-G|-K|-s|-T)
+            _filedir
+            return
+            ;;
+        -m)
+            COMPREPLY=( $( compgen -W 'PEM PKCS8 RFC4716' -- "$cur" ) )
+            return
+            ;;
+        -O)
+            if [[ $cur != *=* ]]; then
+                COMPREPLY=( $( compgen -W 'clear force-command=
+                    no-agent-forwarding no-port-forwarding no-pty no-user-rc
+                    no-x11-forwarding permit-agent-forwarding
+                    permit-port-forwarding permit-pty permit-user-rc
+                    permit-x11-forwarding source-address=' -- "$cur" ) )
+                [[ $COMPREPLY == *= ]] && compopt -o nospace
+            fi
+            return
+            ;;
+        -t)
+            COMPREPLY=( $( compgen -W 'dsa ecdsa rsa rsa1' -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    if [[ $cur == -* ]]; then
+        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -? )' -- "$cur" ) )
+    fi
+} &&
+complete -F _ssh_keygen ssh-keygen
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/test/completion/ssh-keygen.exp b/test/completion/ssh-keygen.exp
new file mode 100644
index 0000000..f074b5a
--- /dev/null
+++ b/test/completion/ssh-keygen.exp
@@ -0,0 +1 @@
+assert_source_completions ssh-keygen
diff --git a/test/lib/completions/ssh-keygen.exp b/test/lib/completions/ssh-keygen.exp
new file mode 100644
index 0000000..fea2529
--- /dev/null
+++ b/test/lib/completions/ssh-keygen.exp
@@ -0,0 +1,18 @@
+proc setup {} {
+    save_env
+}
+
+
+proc teardown {} {
+    assert_env_unmodified
+}
+
+
+setup
+
+
+assert_complete_any "ssh-keygen -"
+sync_after_int
+
+
+teardown

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/bash-completion/bash-completion.git



More information about the Bash-completion-commits mailing list