monotone-commits-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-commits-diffs] net.venge.monotone.contrib.usher: 7502a593e822


From: code
Subject: [Monotone-commits-diffs] net.venge.monotone.contrib.usher: 7502a593e822d0ec5541e2682d39c9919a8d8edb
Date: Wed, 19 Jan 2011 08:22:00 GMT

revision:            7502a593e822d0ec5541e2682d39c9919a8d8edb
date:                2011-01-19T08:21:30
author:              Richard Levitte <address@hidden>
branch:              net.venge.monotone.contrib.usher
changelog:
Split status so there is a non-text version of it, and use that
version.

Split writesrv, addsrv, modsrv and delsrv and versions that don't tell
you to reload usher and versions who do.  Use the former internally.
This reduces the need to hide stderr.


manifest:
format_version "1"

new_manifest [ef80235675fbcace41a3fa152b0bac3d38633ca4]

old_revision [32937faee71bb1b0c312d9f294ea9e124921a423]

patch "utils/usherctl"
 from [ebc251598e05d0d71aed487c0dc8ef4bb87b2537]
   to [b29d51898d66a04f4808afa79dcac9ea24fc0279]
============================================================
--- utils/usherctl	ebc251598e05d0d71aed487c0dc8ef4bb87b2537
+++ utils/usherctl	b29d51898d66a04f4808afa79dcac9ea24fc0279
@@ -88,34 +88,49 @@ _read_pid_file () {
     fi
 }
 
-status () {
+status0 () {
     if [ -z $USHER_SYSTEM_STARTUP ]; then
 	pid=`_read_pid_file`
 	if [ -n "$pid" ]; then
+	    echo "$pid"
 	    if kill -0 $pid 2>/dev/null; then
-		echo "The usher process is up and running: $pid"
 		return 0
 	    else
-		echo "The usher process is down, but there's a PID file."
 		return 1
 	    fi
 	else
-	    echo "The usher process is down."
 	    return 2
 	fi
     else
 	/etc/init.d/usher status
     fi
 }
+status () {
+    pid=`status0`
+    local save_rc=$?
+    case $save_rc in
+	0 )
+	    if [ -z "$pid" ]; then
+		echo "The usher process is up and running"
+	    else
+		echo "The usher process is up and running: $pid"
+	    fi
+	    ;;
+	1 )
+	    echo "The usher process is down, but there's a PID file."
+	    ;;
+	2 )
+	    echo "The usher process is down."
+	    ;;
+    esac
+    return $save_rc
+}
 
 start () {
     if [ -z $USHER_SYSTEM_STARTUP ]; then
-	pid=`_read_pid_file`
-	if [ -n "$pid" ]; then
-	    if kill -0 $pid 2>/dev/null; then
-		echo >&2 "Usher process already up: $pid"
-		exit 1
-	    fi
+	if pid=`status0`; then
+	    echo >&2 "Usher process already up: $pid"
+	    exit 1
 	fi
 	rm -f "$USHER_PIDFILE"
 	$USHER -p "$USHER_PIDFILE" "$USHER_CONF" \
@@ -127,8 +142,7 @@ stop () {
 
 stop () {
     if [ -z $USHER_SYSTEM_STARTUP ]; then
-	pid=`_read_pid_file`
-	if [ -n "$pid" ]; then
+	if pid=`status0`; then
 	    kill $pid
 	fi
     else
@@ -138,12 +152,11 @@ reload () {
 
 reload () {
     if [ -z $USHER_SYSTEM_STARTUP ]; then
-	pid=`_read_pid_file`
-	if [ -z "$pid" ]; then
+	if pid=`status0`; then
+	    kill -1 $pid
+	else
 	    echo >&2 "No usher process present."
 	    exit 1
-	else
-	    kill -1 $pid
 	fi
     else
 	/etc/init.d/usher reload
@@ -152,20 +165,15 @@ restart () {
 
 restart () {
     if [ -z $USHER_SYSTEM_STARTUP ]; then
-	stop && start
+	stop && sleep 1 && start
     else
 	/etc/init.d/usher restart
     fi
 }
 
 restart_if_started () {
-    if [ -z $USHER_SYSTEM_STARTUP ]; then
-	pid=`_read_pid_file`
-	if [ -n "$pid" ]; then
-	    restart
-	fi
-    elif /etc/init.c/usher status >/dev/null 2>/dev/null; then
-	/etc/init.d/usher restart
+    if pid=`status0`; then
+	restart
     fi
 }
 
@@ -227,7 +235,7 @@ rebuild () {
 # $4	pattern prefix
 # $5	type (remote local)
 # $6-	args
-writesrv () {
+writesrv0 () {
     op="$1"; shift
     name="$1"; shift
     host="$1"; shift
@@ -269,29 +277,39 @@ writesrv () {
     _maybe_set_file_owner "$USHER_CONFD/$name.conf"
     chmod 640 "$USHER_CONFD/$name.conf"
     rebuild
-    echo >&2 "Server '$name' $op, please reload usher to activate."
+    echo >&2 "Server '$name' $op."
 }
 
+writesrv () {
+    writesrv0 "$@"
+    echo >&2 "Please reload usher to activate."
+}
+
 # $1	server name
 # $2	host prefix
 # $3	pattern prefix
 # $4	type (remote local)
 # $5-	args
-addsrv () {
+addsrv0 () {
     if [ -f "$USHER_CONFD/$1.conf" ]; then
 	echo >&2 "There is already a server named '$1', not changing."
 	exit 1
     fi
 
-    writesrv added "$@"
+    writesrv0 added "$@"
 }
 
+addsrv () {
+    addsrv0 "$@"
+    echo >&2 "Please reload usher to activate."
+}
+
 # $1	server name
 # $2	host prefix
 # $3	pattern prefix
 # $4	type (remote local)
 # $5-	args
-modsrv () {
+modsrv0 () {
     name="$1"; shift
     ohost="$1"; host="$1"; shift
     opattern="$1"; pattern="$1"; shift
@@ -325,11 +343,16 @@ modsrv () {
 	esac
     done < "$USHER_CONFD/$name.conf"
     mv "$USHER_CONFD/$name.conf" "$USHER_CONFD/$name.conf~"
-    writesrv modified "$name" "$host" "$pattern" "$@"
+    writesrv0 modified "$name" "$host" "$pattern" "$@"
 }
 
+modsrv () {
+    modsrv0 "$@"
+    echo >&2 "Please reload usher to activate."
+}
+
 # $1	server name
-delsrv () {
+delsrv0 () {
     name="$1"
     
     if [ ! -f "$USHER_CONFD/$name.conf" ]; then
@@ -339,9 +362,14 @@ delsrv () {
 
     rm -f "$USHER_CONFD/$name.conf" "$USHER_CONFD/$name.conf~"
     rebuild
-    echo >&2 "Server '$name' deleted, please reload usher to activate."
+    echo >&2 "Server '$name' deleted."
 }
 
+delsrv () {
+    delsrv0 "$@"
+    echo >&2 "Please reload usher to activate."
+}
+
 # $1 name
 rebuild_permissions () {
     confdir="$USHER_PROJECTDIR/$name"
@@ -483,10 +511,10 @@ mkproject () {
     echo "$akid" > "$aconfdir/rakeys"
 
     # add project server
-    addsrv "$name" "" "" \
+    addsrv0 "$name" "" "" \
 	local "--confdir" "$confdir" "-d" "$confdir/database.mtn" \
 	"--no-standard-rcfiles" "--rcfile" "$confdir/monotonerc" \
-	"--timestamps" "--ticker=dot" 2>/dev/null
+	"--timestamps" "--ticker=dot"
 
     restart_if_started
 
@@ -504,7 +532,7 @@ rmproject () {
 	exit 1
     fi
 
-    delsrv "$name" 2>/dev/null
+    delsrv0 "$name"
     restart_if_started
     rm -rf "$USHER_PROJECTDIR/$name"
     echo >&2 "project '$name' removed."

reply via email to

[Prev in Thread] Current Thread [Next in Thread]