diff options
author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2010-05-06 22:25:28 -0400 |
---|---|---|
committer | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2010-05-06 22:55:57 -0400 |
commit | f97dd58a298cf337a1fffa00d3733256d21d2d8f (patch) | |
tree | e81f245869f62889509f470ae93a4a14ea3bf053 /src/share/mh/set_expire | |
parent | c74075ae34bf6dd035f42ce044046e6f273ae73d (diff) |
reporting new expiration date when key expiry is updated (closes MS #2291)
Diffstat (limited to 'src/share/mh/set_expire')
-rw-r--r-- | src/share/mh/set_expire | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/share/mh/set_expire b/src/share/mh/set_expire index 68a8dfd..f9a5507 100644 --- a/src/share/mh/set_expire +++ b/src/share/mh/set_expire @@ -19,20 +19,25 @@ set_expire() { local extendBy local keyID -if [ -z "$1" ] ; then - cat <<EOF >&2 -Must specify expiration. The possibilities are: +local formatMsg=' +The possibilities are: 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months - <n>y = key expires in n years -EOF - failure + <n>y = key expires in n years' + + +if [ -z "$1" ] ; then + failure "Must specify expiration.$formatMsg" fi extendBy="$1" shift +if ! <<<"$extendBy" egrep -q '^[[:digit:]]+[wmy]?$' ; then + failure "'$extendBy' is not a valid expiration date.$formatMsg" +fi + keyID=$(check_key_input "$@") if [ "$PROMPT" != "false" ] ; then @@ -55,6 +60,16 @@ EOF update_pgp_pub_file +if [ 0 == "$extendBy" ] ; then + log info "Key ${keyID} no longer expires." +else + if expiry=$(gpg_host_list_keys "${keyID}" | grep ^pub: | head -n1 | cut -f7 -d: ) ; then + log info "Key ${keyID} now expires at $(date '+%F %T' --date "1970-01-01 0:00 UTC + ${expiry} seconds")" + else + log error "Failed to retrieve new expiration date for key ${keyID}" + fi +fi + log info <<EOF NOTE: Key expiration date adjusted, but not yet published. Run '$PGRM publish-key' to publish the new expiration date. |