some small compatibility changes:
authorJameson Graef Rollins <jrollins@finestructure.net>
Sun, 5 Apr 2009 22:05:36 +0000 (15:05 -0700)
committerJameson Graef Rollins <jrollins@finestructure.net>
Sun, 5 Apr 2009 22:05:36 +0000 (15:05 -0700)
- fix file_hash function to use md5 or md5sum, for Darwin
compatibility
- use build-in 'type' instead of 'which', which for some reason
doesn't behave on Darwin
- clean up some redirection calls.

src/share/common
src/share/m/ssh_proxycommand
src/share/m/subkey_to_ssh_agent

index c8d44f656c58136be011a0bd80c5af077adeaedb..04fe4fe462e9c7a540c5a582f2b50ffa4fbb387f 100644 (file)
@@ -147,8 +147,8 @@ lock() {
     local action="$1"
     local file="$2"
 
-    if ! ( which lockfile-create >/dev/null 2>/dev/null ) ; then
-       if ! ( which lockfile >/dev/null ); then
+    if ! ( type lockfile-create &>/dev/null ) ; then
+       if ! ( type lockfile &>/dev/null ); then
            failure "Neither lockfile-create nor lockfile are in the path!"
        fi
        use_lockfileprogs=
@@ -197,7 +197,7 @@ advance_date() {
     local shortunits
 
     # try things the GNU way first 
-    if date -d "$number $longunits" "$format" >/dev/null 2>&1; then
+    if date -d "$number $longunits" "$format" &>/dev/null; then
        date -d "$number $longunits" "$format"
     else
        # otherwise, convert to (a limited version of) BSD date syntax:
@@ -252,7 +252,13 @@ check_capability() {
 
 # hash of a file
 file_hash() {
-    md5sum "$1" 2> /dev/null
+    if type md5sum &>/dev/null ; then
+       md5sum "$1"
+    elif type lockfile &>/dev/null ; then
+       md5 "$1"
+    else
+       failure "Neither md5sum nor md5 are in the path!"
+    fi
 }
 
 # convert escaped characters in pipeline from gpg output back into
@@ -303,7 +309,7 @@ passphrase_prompt() {
     local fifo="$2"
     local PASS
 
-    if [ "$DISPLAY" ] && which "${SSH_ASKPASS:-ssh-askpass}" >/dev/null; then
+    if [ "$DISPLAY" ] && type "${SSH_ASKPASS:-ssh-askpass}" >/dev/null; then
        printf 'Launching "%s"\n' "${SSH_ASKPASS:-ssh-askpass}" | log info
        printf '(with prompt "%s")\n' "$prompt" | log debug
        "${SSH_ASKPASS:-ssh-askpass}" "$prompt" > "$fifo"
@@ -333,7 +339,7 @@ remove_line() {
     fi
 
     # if the string is in the file...
-    if grep -q -F "$string" "$file" 2> /dev/null ; then
+    if grep -q -F "$string" "$file" 2>/dev/null ; then
        tempfile=$(mktemp "${file}.XXXXXXX") || \
            failure "Unable to make temp file '${file}.XXXXXXX'"
        
@@ -460,7 +466,7 @@ gpg2ssh() {
     
     keyID="$1"
 
-    gpg --export "$keyID" | openpgp2ssh "$keyID" 2> /dev/null
+    gpg --export "$keyID" | openpgp2ssh "$keyID" 2>/dev/null
 }
 
 # output known_hosts line from ssh key
@@ -551,7 +557,7 @@ gpg_fetch_userid() {
     echo 1,2,3,4,5 | \
        gpg --quiet --batch --with-colons \
        --command-fd 0 --keyserver "$KEYSERVER" \
-       --search ="$userID" > /dev/null 2>&1
+       --search ="$userID" &>/dev/null
     returnCode="$?"
 
     return "$returnCode"
@@ -811,7 +817,7 @@ process_host_known_hosts() {
                # hash from stdin to stdout
                tmpfile=$(mktemp ${TMPDIR:-/tmp}/tmp.XXXXXXXXXX)
                ssh2known_hosts "$host" "$sshKey" > "$tmpfile"
-               ssh-keygen -H -f "$tmpfile" 2> /dev/null
+               ssh-keygen -H -f "$tmpfile" 2>/dev/null
                cat "$tmpfile" >> "$KNOWN_HOSTS"
                rm -f "$tmpfile" "${tmpfile}.old"
            else
@@ -1093,7 +1099,7 @@ process_authorized_user_ids() {
     # check permissions on the authorized_user_ids file path
     check_key_file_permissions $(whoami) "$authorizedUserIDs" || failure
 
-    if ! meat "$authorizedUserIDs" > /dev/null ; then
+    if ! meat "$authorizedUserIDs" >/dev/null ; then
        log debug " no user IDs to process."
        return
     fi
index 77f9d243f46ddc81e4e6d527ffff025d2fc382c3..74b0f85cd9d685b5702f26eecc61ec2719a20fde 100644 (file)
@@ -186,7 +186,7 @@ URI="ssh://${HOSTP}"
 # CHECK_KEYSERVER variable in the monkeysphere.conf file.
 
 # if the host is in the gpg keyring...
-if gpg_user --list-key ="${URI}" 2>&1 >/dev/null ; then
+if gpg_user --list-key ="${URI}" &>/dev/null ; then
     # do not check the keyserver
     CHECK_KEYSERVER=${CHECK_KEYSERVER:="false"}
 
@@ -253,9 +253,9 @@ esac
 
 # exec a netcat passthrough to host for the ssh connection
 if [ -z "$NO_CONNECT" ] ; then
-    if (which nc 2>/dev/null >/dev/null); then
+    if (type nc &>/dev/null); then
        exec nc "$HOST" "$PORT"
-    elif (which socat 2>/dev/null >/dev/null); then
+    elif (type socat &>/dev/null); then
        exec socat STDIO "TCP:$HOST:$PORT"
     else
        echo "Neither netcat nor socat found -- could not complete monkeysphere-ssh-proxycommand connection to $HOST:$PORT" >&2
index aa647a628ae9f0e96e04948056f9279cbf5789d2..edc177ba59da50744746a082b0c3a08987c53807 100644 (file)
@@ -27,7 +27,7 @@ subkey_to_ssh_agent() {
     local kname
 
     # if there's no agent running, don't bother:
-    if [ -z "$SSH_AUTH_SOCK" ] || ! which ssh-add >/dev/null ; then
+    if [ -z "$SSH_AUTH_SOCK" ] || ! type ssh-add >/dev/null ; then
        failure "No ssh-agent available."
     fi