- # 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
+ # Note the quotes around `$TEMP': they are essential!
+ eval set -- "$TEMP"
+
+ while true ; do
+ case "$1" in
+ -l|--length)
+ keyLength="$2"
+ shift 2
+ ;;
+ -e|--expire)
+ keyExpire="$2"
+ shift 2
+ ;;
+ --)
+ shift
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
+
+ keyID="$1"
+ if [ -z "$keyID" ] ; then
+ failure "You must specify the key ID of your primary key."
+ fi
+
+ # 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