fix remove_monkeysphere_lines function to just read from stdin and write to stdout
[monkeysphere.git] / src / monkeysphere
index 121db36ea7f0f7b47b0812666449336637859455..9d0685b705cfaeebb5bc62f3d1318a20c8c5eb2c 100755 (executable)
@@ -16,7 +16,7 @@ set -e
 
 PGRM=$(basename $0)
 
-SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"/usr/share/monkeysphere"}
+SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"__SYSSHAREDIR_PREFIX__/share/monkeysphere"}
 export SYSSHAREDIR
 . "${SYSSHAREDIR}/defaultenv"
 . "${SYSSHAREDIR}/common"
@@ -49,8 +49,8 @@ subcommands:
    --no-connect                        do not make TCP connection to host
  subkey-to-ssh-agent (s)             store authentication subkey in ssh-agent
 
- keys-for-userid (u) USERID          output valid keys for given user ids
- sshfprs-for-userid USERID           output ssh fingerprints for given user ids
+ keys-for-userid (u) USERID          output valid ssh keys for given user id
+ sshfprs-for-userid USERID           output ssh fingerprints for given user id
  gen-subkey (g) [KEYID]              generate an authentication subkey
    --length (-l) BITS                  key length in bits (2048)
 
@@ -62,7 +62,7 @@ EOF
 
 # user gpg command to define common options
 gpg_user() {
-    gpg --no-greeting --quiet --no-tty "$@"
+    LC_ALL=C gpg --no-greeting --quiet --no-tty "$@"
 }
 
 # output the ssh fingerprint of a gpg key
@@ -156,7 +156,7 @@ check_gpg_authentication_subkey() {
 # set unset default variables
 GNUPGHOME=${GNUPGHOME:="${HOME}/.gnupg"}
 KNOWN_HOSTS="${HOME}/.ssh/known_hosts"
-HASH_KNOWN_HOSTS="true"
+HASH_KNOWN_HOSTS="false"
 AUTHORIZED_KEYS="${HOME}/.ssh/authorized_keys"
 
 # unset the check keyserver variable, since that needs to have
@@ -220,6 +220,8 @@ case $COMMAND in
        # whether or not to check keyservers
        CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
 
+       source "${MSHAREDIR}/update_known_hosts"
+
        # if hosts are specified on the command line, process just
        # those hosts
        if [ "$1" ] ; then
@@ -235,9 +237,8 @@ case $COMMAND in
     'update-authorized_keys'|'update-authorized-keys'|'a')
        # whether or not to check keyservers
        CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
-
-       # process authorized_user_ids file
-       process_authorized_user_ids "$AUTHORIZED_USER_IDS"
+       source "${MSHAREDIR}/update_authorized_keys"
+       update_authorized_keys
        ;;
 
     'import-subkey'|'import'|'i')
@@ -267,27 +268,20 @@ case $COMMAND in
 
     'keys-for-userid'|'u')
        CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
+       source "${MSHAREDIR}/keys_for_userid"
        keys_for_userid "$@"
        ;;
 
     'sshfprs-for-userid')
        CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
-        keytmpdir=$(msmktempdir)
-        # use a file named " " to avoid arbitrary non-whitespace text
-        # in the fingerprint output
-        keytmpfile="$keytmpdir/ "
-        cd "$keytmpdir"
-       keys_for_userid "$@" | while read KEYLINE ; do
-            printf '%s\n' "$KEYLINE" > "$keytmpdir/ "
-            ssh-keygen -l -f ' '
-        done
-        rm -f "$keytmpfile"
-        rmdir "$keytmpdir"
+       source "${MSHAREDIR}/keys_for_userid"
+       keys_for_userid "$@" | "$SYSSHAREDIR/keytrans" sshfpr
        ;;
 
     'keys-from-userid')
        echo "Warning: 'keys-from-userid' is deprecated.  Please use 'keys-for-userid' instead." >&2
        CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=${CHECK_KEYSERVER:="true"}}
+       source "${MSHAREDIR}/keys_for_userid"
        keys_for_userid "$@"
        ;;