switched $USER to $FILE_OWNER; new name is more semantically clear and less likely...
[monkeysphere.git] / src / monkeysphere-host
index baa7a87bf482f13706c1414a9f3f9e2056d5a689..b9a15ae5c96c70dea455f9302a10621324c1877e 100755 (executable)
@@ -21,7 +21,8 @@ PGRM=$(basename $0)
 
 SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"/usr/share/monkeysphere"}
 export SYSSHAREDIR
-. "${SYSSHAREDIR}/common" || exit 1
+. "${SYSSHAREDIR}/defaultenv"
+. "${SYSSHAREDIR}/common"
 
 SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere"}
 export SYSDATADIR
@@ -41,9 +42,6 @@ DATE=$(date -u '+%FT%T')
 # unset some environment variables that could screw things up
 unset GREP_OPTIONS
 
-# default return code
-RETURN=0
-
 ########################################################################
 # FUNCTIONS
 ########################################################################
@@ -163,6 +161,8 @@ find_host_userid() {
 # show info about the host key
 show_key() {
     local GNUPGHOME
+    local TMPSSH
+    local revokers
 
     # tmp gpghome dir
     export GNUPGHOME=$(msmktempdir)
@@ -175,7 +175,7 @@ show_key() {
 
     # create the ssh key
     TMPSSH="$GNUPGHOME"/ssh_host_key_rsa_pub
-    openpgp2ssh <"$HOST_KEY_FILE" 2>/dev/null >"$TMPSSH"
+    gpg --export | openpgp2ssh 2>/dev/null >"$TMPSSH"
 
     # get the gpg fingerprint
     HOST_FINGERPRINT=$(gpg --quiet --list-keys --with-colons --with-fingerprint \
@@ -184,12 +184,22 @@ show_key() {
     # list the host key info
     # FIXME: make no-show-keyring work so we don't have to do the grep'ing
     # FIXME: can we show uid validity somehow?
-    # FIXME: show revokers as well
     gpg --list-keys --fingerprint \
        --list-options show-unusable-uids 2>/dev/null \
        | grep -v "^${GNUPGHOME}/pubring.gpg$" \
        | egrep -v '^-+$'
 
+    # list revokers, if there are any
+    revokers=$(gpg --list-keys --with-colons --fixed-list-mode \
+       | awk -F: '/^rvk:/{ print $10 }' )
+    if [ "$revokers" ] ; then
+       echo "The following keys are allowed to revoke this host key:"
+       for key in $revokers ; do
+           echo "revoker: $key"
+       done
+       echo
+    fi
+
     # list the pgp fingerprint
     echo "OpenPGP fingerprint: $HOST_FINGERPRINT"
 
@@ -303,7 +313,7 @@ case $COMMAND in
        ;;
 
     'version'|'v')
-       echo "$VERSION"
+       version
        ;;
 
     '--help'|'help'|'-h'|'h'|'?')
@@ -315,5 +325,3 @@ case $COMMAND in
 Type '$PGRM help' for usage."
         ;;
 esac
-
-exit "$RETURN"