summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/common b/src/common
index 44bdb67..d90730f 100644
--- a/src/common
+++ b/src/common
@@ -85,9 +85,12 @@ gpg_escape() {
# prompt for GPG-formatted expiration, and emit result on stdout
get_gpg_expiration() {
- local keyExpire=
+ local keyExpire
- cat >&2 <<EOF
+ keyExpire="$1"
+
+ if [ -z "$keyExpire" ]; then
+ cat >&2 <<EOF
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
@@ -95,13 +98,17 @@ Please specify how long the key should be valid.
<n>m = key expires in n months
<n>y = key expires in n years
EOF
- while [ -z "$keyExpire" ] ; do
- read -p "Key is valid for? (0) " keyExpire
- if ! test_gpg_expire ${keyExpire:=0} ; then
- echo "invalid value" >&2
- unset keyExpire
- fi
- done
+ while [ -z "$keyExpire" ] ; do
+ read -p "Key is valid for? (0) " keyExpire
+ if ! test_gpg_expire ${keyExpire:=0} ; then
+ echo "invalid value" >&2
+ unset keyExpire
+ fi
+ done
+ elif ! test_gpg_expire "$keyExpire" ; then
+ failure "invalid key expiration value '$keyExpire'."
+ fi
+
echo "$keyExpire"
}