Added checking of gpg.conf for keyserver.
[monkeysphere.git] / src / monkeysphere
index 4a611c806e4ea8dd3d4405a643821b543d0aef44..6d9e6c3a28469880895525d2a51e64667cb8de7c 100755 (executable)
@@ -101,6 +101,11 @@ gen_subkey(){
     else
        keyID="$1"
     fi
+    if [ -z "$keyID" ] ; then
+       failure "You have no secret key available.  You should create an OpenPGP
+key before joining the monkeysphere. You can do this with:
+   gpg --gen-key"
+    fi
 
     # get key output, and fail if not found
     gpgOut=$(gpg --quiet --fixed-list-mode --list-secret-keys --with-colons \
@@ -186,7 +191,16 @@ mkdir -p -m 0700 "$MONKEYSPHERE_HOME"
 # set empty config variables with ones from the environment, or from
 # config file, or with defaults
 GNUPGHOME=${MONKEYSPHERE_GNUPGHOME:=${GNUPGHOME:="${HOME}/.gnupg"}}
-KEYSERVER=${MONKEYSPHERE_KEYSERVER:=${KEYSERVER:="subkeys.pgp.net"}}
+KEYSERVER=${MONKEYSPHERE_KEYSERVER:="$KEYSERVER"}
+# if keyserver not specified in env or monkeysphere.conf,
+# look in gpg.conf
+if [ -z "$KEYSERVER" ] ; then
+    if [ -f "${GNUPGHOME}/gpg.conf" ] ; then
+       KEYSERVER=$(grep -e "^[[:space:]]*keyserver " "${GNUPGHOME}/gpg.conf" | tail -1 | awk '{ print $2 }')
+    fi
+fi
+# if it's still not specified, use the default
+KEYSERVER=${KEYSERVER:="subkeys.pgp.net"}
 CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
 KNOWN_HOSTS=${MONKEYSPHERE_KNOWN_HOSTS:=${KNOWN_HOSTS:="${HOME}/.ssh/known_hosts"}}
 HASH_KNOWN_HOSTS=${MONKEYSPHERE_HASH_KNOWN_HOSTS:=${HASH_KNOWN_HOSTS:="true"}}