Fix tests for gen-subkey.
[monkeysphere.git] / src / monkeysphere
index cb6c06c1907ac384a9450189bd2b82381f100994..5e8b184bf8c15c0eca8b70fbc9875f658ed49d02 100755 (executable)
@@ -90,24 +90,22 @@ gen_subkey(){
     done
 
     keyID="$1"
-
-    gpgOut=$(gpg --quiet --fixed-list-mode --list-keys --with-colons \
-       "$keyID" 2> /dev/null)
-
-    # fail if there only "tru" lines are output from gpg, which
-    # indicates the key was not found.
-    if [ -z "$(echo "$gpgOut" | grep -v '^tru:')" ] ; then
-       failure "Key ID '$keyID' not found."
+    if [ -z "$keyID" ] ; then
+       failure "You must specify the key ID of your primary key."
     fi
 
-    # fail if multiple pub lines are returned, which means the id given
-    # is not unique
-    if [ $(echo "$gpgOut" | grep '^pub:' | wc -l) -gt '1' ] ; then
+    # get key output, and fail if not found
+    gpgOut=$(gpg --quiet --fixed-list-mode --list-secret-keys --with-colons \
+       "$keyID") || failure
+
+    # fail if multiple sec lines are returned, which means the id
+    # given is not unique
+    if [ $(echo "$gpgOut" | grep '^sec:' | wc -l) -gt '1' ] ; then
        failure "Key ID '$keyID' is not unique."
     fi
 
     # prompt if an authentication subkey already exists
-    if echo "$gpgOut" | egrep "^(pub|sub):" | cut -d: -f 12 | grep -q a ; then
+    if echo "$gpgOut" | egrep "^(sec|ssb):" | cut -d: -f 12 | grep -q a ; then
        echo "An authentication subkey already exists for key '$keyID'."
        read -p "Are you sure you would like to generate another one? (y/N) " OK; OK=${OK:N}
        if [ "${OK/y/Y}" != 'Y' ] ; then
@@ -245,11 +243,7 @@ case $COMMAND in
        ;;
 
     'gen-subkey'|'g')
-       keyID="$1"
-       if [ -z "$keyID" ] ; then
-           failure "You must specify the key ID of your primary key."
-       fi
-       gen_subkey "$keyID"
+       gen_subkey "$@"
        ;;
 
     'help'|'h'|'?')