proposed fix for #1147 by checking for known_hosts file
[monkeysphere.git] / src / monkeysphere
index c45a36f94d811d3a2ae5eaab382c557c0d0af1d3..94279f4092abe234536b19abad44be68a7b0158a 100755 (executable)
@@ -144,7 +144,7 @@ check_gpg_authentication_subkey() {
        if [ "$validity" = 'u' ] ; then
            echo "A valid authentication key already exists for primary key '$keyID'." 1>&2
            if [ "$PROMPT" = "true" ] ; then
-               printf "Are you sure you would like to generate another one? (y/N) "
+               printf "Are you sure you would like to generate another one? (y/N) " >&2
                read OK; OK=${OK:N}
                if [ "${OK/y/Y}" != 'Y' ] ; then
                    failure "aborting."
@@ -194,7 +194,18 @@ if [ -z "$KEYSERVER" ] ; then
     fi
 fi
 PROMPT=${MONKEYSPHERE_PROMPT:=$PROMPT}
-KNOWN_HOSTS=${MONKEYSPHERE_KNOWN_HOSTS:=$KNOWN_HOSTS}
+# check the known_hosts file
+if [ "$MONKEYSPHERE_KNOWN_HOSTS" ] ; then
+    if [ -f "$MONKEYSPHERE_KNOWN_HOSTS" ] ; then
+       KNOWN_HOSTS="$MONKEYSPHERE_KNOWN_HOSTS"
+    else
+       failure "specified monkeysphere known_hosts file '$MONKEYSPHERE_KNOWN_HOSTS' does not exist."
+    fi
+fi
+[ -d $(dirname "$KNOWN_HOSTS") ] \
+    || mkdir -m 0700 $(dirname "$KNOWN_HOSTS")
+[ -f "$KNOWN_HOSTS" ] \
+    || touch "$KNOWN_HOSTS"
 HASH_KNOWN_HOSTS=${MONKEYSPHERE_HASH_KNOWN_HOSTS:=$HASH_KNOWN_HOSTS}
 AUTHORIZED_KEYS=${MONKEYSPHERE_AUTHORIZED_KEYS:=$AUTHORIZED_KEYS}