Author: glen
Date: Sun Dec 12 18:41:18 2010
New Revision: 11982

Modified:
   rc-scripts/trunk/rc.d/init.d/functions
Log:
add --user support to run_cmd


Usage:
run_cmd --user stats "Message" command_to_run arg1 arg2...




Modified: rc-scripts/trunk/rc.d/init.d/functions
==============================================================================
--- rc-scripts/trunk/rc.d/init.d/functions      (original)
+++ rc-scripts/trunk/rc.d/init.d/functions      Sun Dec 12 18:41:18 2010
@@ -462,26 +462,37 @@
        echo $good_pids
 }
 
-# Usage run_cmd Message command_to_run
+# Usage:
+# run_cmd Message command_to_run
+# run_cmd -a Message command_to_run
+# run_cmd --user "username" "Message" command_to_run
 run_cmd() {
-       local exit_code errors message force_err
-       local force_err=0 exit_code=0
-       case "$1" in
-       -a)
-               force_err=1
+       local force_err=0 exit_code=0 errors user
+       while [ $# -gt 0 ]; do
+               case "$1" in
+               -a)
+                       force_err=1
+                       ;;
+               --user)
+                       shift
+                       user=$1
+                       ;;
+               *)
+                       break
+               esac
                shift
-               ;;
-       esac
-       message=$1
+       done
+
+       local message=$1; shift
        show "$message"; busy
-       shift
-       cd /
+
        if errors=$(
+               cd /
                export HOME=/tmp TMPDIR=/tmp
                if is_no "$RC_LOGGING"; then
-                       "$@" 2>&1
+                       ${user:+setuidgid -s $user} "$@" 2>&1
                else
-                       initlog -c "$*" 2>&1
+                       ${user:+setuidgid -s $user} initlog -c "$*" 2>&1
                fi
                ); then
                ok
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to