reporting new expiration date when key expiry is updated (closes MS #2291)
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Fri, 7 May 2010 02:25:28 +0000 (22:25 -0400)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Fri, 7 May 2010 02:55:57 +0000 (22:55 -0400)
Changelog
src/monkeysphere-host
src/share/mh/set_expire

index d6a7a56735e1ee47f0ecf310e2e8776544908cda..35197d02ccb13ed2a0d79b469ab4331ce534975e 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -4,6 +4,8 @@ monkeysphere (0.31~pre) UNRELEASED; urgency=low
     between m-h and m-a (closes MS #2288)
   * do not bail or fail on m-h publish-key if the admin interactively
     declines to publish one of the keys key (closes MS #1945)
+  * report updated expiration date upon successful conclusion of m-h
+    set-expire (closes MS #2291)
 
  -- Daniel Kahn Gillmor <dkg@fifthhorseman.net>  Thu, 06 May 2010 11:23:38 -0400
 
index 13cc3cacc2b7b4f7e97ef195ba95c95ed2e9d33f..6216dce8d9c67da68f99fb391a6ab41472b14dfe 100755 (executable)
@@ -74,7 +74,7 @@ EOF
 
 # function to interact with the gpg keyring
 gpg_host() {
-    GNUPGHOME="$GNUPGHOME_HOST" gpg --no-auto-check-trustdb --no-greeting --quiet --no-tty "$@"
+    GNUPGHOME="$GNUPGHOME_HOST" gpg --no-auto-check-trustdb --trust-model=always --no-greeting --quiet --no-tty "$@"
 }
 
 # list the info about the a key, in colon format, to stdout
index 68a8dfd010754a76f251220eeb4da45729b55992..f9a55077e409d7cc096df611abae67233d276b3a 100644 (file)
@@ -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.