add some debug logging to some common functions
[monkeysphere.git] / src / share / common
index 9adae05e894a5a8aedeca0d5bdd41f122b897a44..d60631e0ab99e1c074d9b5fef9a5b9b863510c4b 100644 (file)
@@ -34,7 +34,8 @@ failure() {
 
 # write output to stderr based on specified LOG_LEVEL the first
 # parameter is the priority of the output, and everything else is what
-# is echoed to stderr
+# is echoed to stderr.  If there is nothing else, then output comes
+# from stdin, and is not prefaced by log prefix.
 log() {
     local priority
     local level
@@ -79,12 +80,29 @@ log() {
            output=true
        fi
        if [ "$priority" = "$level" -a "$output" = 'true' ] ; then
-           echo -n "ms: " >&2
-           echo "$@" >&2
+           if [ "$1" ] ; then
+               echo -n "ms: " >&2
+               echo "$@" >&2
+           else
+               cat >&2
+           fi
        fi
     done
 }
 
+# run command as monkeysphere user
+su_monkeysphere_user() {
+    # if the current user is the monkeysphere user, then just eval
+    # command
+    if [ $(id -un) = "$MONKEYSPHERE_USER" ] ; then
+       eval "$@"
+
+    # otherwise su command as monkeysphere user
+    else
+       su "$MONKEYSPHERE_USER" -c "$@"
+    fi
+}
+
 # cut out all comments(#) and blank lines from standard input
 meat() {
     grep -v -e "^[[:space:]]*#" -e '^$' "$1"
@@ -118,6 +136,7 @@ lock() {
            else
                lockfile -r 20 "${file}.lock" || failure "unable to lock '$file'"
            fi
+           log debug "lock created on '$file'."
            ;;
        touch)  
            if [ -n "$use_lockfileprogs" ] ; then
@@ -125,6 +144,7 @@ lock() {
            else
                : Nothing to do here
            fi
+           log debug "lock touched on '$file'."
            ;;
        remove)
            if [ -n "$use_lockfileprogs" ] ; then
@@ -132,6 +152,7 @@ lock() {
            else
                rm -f "${file}.lock"
            fi
+           log debug "lock removed on '$file'."
            ;;
        *)
            failure "bad argument for lock subfunction '$action'"
@@ -412,6 +433,8 @@ check_key_file_permissions() {
     uname="$1"
     path="$2"
 
+    log debug "checking path permission '$path'..."
+
     # return 255 if cannot stat file
     if ! stat=$(ls -ld "$path" 2>/dev/null) ; then
         log error "could not stat path '$path'."
@@ -1000,6 +1023,8 @@ update_authorized_keys() {
 
     # remove the lockfile and the trap
     lock remove "$AUTHORIZED_KEYS"
+
+    # remove the trap
     trap - EXIT
 
     # note if the authorized_keys file was updated