# -*-shell-script-*-
# This should be sourced by bash (though we welcome changes to make it POSIX sh compliant)

# Monkeysphere host set-expire subcommand
#
# This is a function to set the expiration date of the monkeysphere
# host key.
#
# The monkeysphere scripts are written by:
# Jameson Rollins <jrollins@finestructure.net>
# Jamie McClelland <jm@mayfirst.org>
# Daniel Kahn Gillmor <dkg@fifthhorseman.net>
#
# They are Copyright 2008-2010, and are all released under the GPL,
# version 3 or later.

set_expire() {

local extendBy
local keyID

if [ -z "$1" ] ; then
    cat <<EOF >&2
Must specify expiration.  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
fi
extendBy="$1"
shift

keyID=$(check_key_input "$@")

if [ "$PROMPT" != "false" ] ; then
    printf "Are you sure you want to change the expiration on key '$keyID' by '%s'? (Y/n) " "$extendBy" >&2
    read OK; OK=${OK:-Y}
    if [ "${OK/y/Y}" != 'Y' ] ; then
	failure "expiration not set."
    fi
else
    log debug "extending without prompting."
fi

log info "setting key expiration to ${extendBy}."

log debug "executing key expire script..."
gpg_host_edit "0x${keyID}!" expire <<EOF
$extendBy
save
EOF

update_pgp_pub_file

log info <<EOF
NOTE: Key expiration date adjusted, but not yet published.
Run '$PGRM publish-key' to publish the new expiration date.
EOF

}