Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Apr 2006 18:10:04 -0400
From:      "Coleman Kane" <zombyfork@gmail.com>
To:        "Doug Barton" <dougb@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: [PATCH] Fancy rc startup style RFC
Message-ID:  <346a80220604181510i10c82020s633816faec8ad3e1@mail.gmail.com>
In-Reply-To: <44455DC2.9080504@FreeBSD.org>
References:  <444515C8.3030406@centtech.com> <44455DC2.9080504@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_24891_26292795.1145398204205
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 4/18/06, Doug Barton <dougb@freebsd.org> wrote:
>
> While I personally am not necessarily opposed to this kind of patch, you
> should be aware that this idea has been proposed in the past, and roundly
> rejected. The consensus has been that we don't necessarily want FreeBSD t=
o
> look like other OSes that do this.


I remember a time back when the idea of an /etc/rc.d/ was taboo to bring
up.... hopefully times are better now!

That said, when you have something that you're ready for a wider review on,
> please submit it first to freebsd-rc@, then freebsd-arch@.
>
> Doug
>
> --
>
>     This .signature sanitized for your protection
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org=
"
>

You want colors?!?

You can have them! (attached)

---
Coleman Kane

------=_Part_24891_26292795.1145398204205
Content-Type: text/x-patch; name=rc_fancy-cokane-colors.patch; 
	charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Attachment-Id: f_em6shyg9
Content-Disposition: attachment; filename="rc_fancy-cokane-colors.patch"

--- rc.subr.orig	Tue Apr 18 18:06:20 2006
+++ rc.subr	Tue Apr 18 18:09:24 2006
@@ -313,12 +313,16 @@
 			break
 		fi
 		_list=$_nlist
-		echo -n ${_prefix:-"Waiting for PIDS: "}$_list
+		if ! checkyesno rc_fancy; then
+			echo -n ${_prefix:-"Waiting for PIDS: "}$_list
+		fi
 		_prefix=", "
 		sleep 2
 	done
 	if [ -n "$_prefix" ]; then
-		echo "."
+		if ! checkyesno rc_fancy; then
+			echo "."
+		fi
 	fi
 }
 
@@ -564,12 +568,14 @@
 					# if the precmd failed and force
 					# isn't set, exit
 					#
+			rcargsize=`echo $rc_arg`
+			rcargsize=${#rcargsize}
 			if [ -n "$_precmd" ]; then
 				debug "run_rc_command: evaluating ${_precmd}()."
 				eval $_precmd $rc_extra_args
 				_return=$?
 				[ $_return -ne 0 ] && [ -z "$rc_force" ] &&
-				    return 1
+				    (echo_fancy "FAILED" `expr 10 + $rcargsize - 1`) && return 1
 			fi
 
 			if [ -n "$_cmd" ]; then
@@ -577,7 +583,7 @@
 				eval $_cmd $rc_extra_args
 				_return=$?
 				[ $_return -ne 0 ] && [ -z "$rc_force" ] &&
-				    return 1
+				    (echo_fancy "FAILED" `expr 10 + $rcargsize - 1`) && return 1
 			fi
 
 			if [ -n "$_postcmd" ]; then
@@ -585,6 +591,7 @@
 				 eval $_postcmd $rc_extra_args
 				_return=$?
 			fi
+			echo_fancy "  OK  " 0
 			return $_return
 		fi
 
@@ -600,13 +607,16 @@
 			;;
 
 		start)
+ 			echo -n "Starting ${name}"
 			if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
+ 				echo_fancy " SKIP " 9
 				echo 1>&2 "${name} already running? (pid=$rc_pid)."
 				return 1
 			fi
 
 			if [ ! -x ${_chroot}${command} ]; then
 				info "run_rc_command: cannot run ($command)."
+ 				echo_fancy "ERROR " 9
 				return 1
 			fi
 
@@ -617,6 +627,7 @@
 				if ! checkyesno $_f; then
 					warn "\$${_f} is not enabled."
 					if [ -z "$rc_force" ]; then
+						echo_fancy "ERROR " 9
 						return 1
 					fi
 				fi
@@ -625,6 +636,7 @@
 				if [ ! -d "${_f}/." ]; then
 					warn "${_f} is not a directory."
 					if [ -z "$rc_force" ]; then
+						echo_fancy "ERROR " 9
 						return 1
 					fi
 				fi
@@ -633,6 +645,7 @@
 				if [ ! -r "${_f}" ]; then
 					warn "${_f} is not readable."
 					if [ -z "$rc_force" ]; then
+						echo_fancy "ERROR " 9
 						return 1
 					fi
 				fi
@@ -646,12 +659,11 @@
 				eval $_precmd
 				_return=$?
 				[ $_return -ne 0 ] && [ -z "$rc_force" ] &&
-				    return 1
+				    (echo_fancy "ERROR " 9) && return 1
 			fi
 
 					# setup the command to run, and run it
 					#
-			echo "Starting ${name}."
 			if [ -n "$_chroot" ]; then
 				_doit="\
 ${_nice:+nice -n $_nice }\
@@ -673,7 +685,7 @@
 			debug "run_rc_command: _doit: $_doit"
 			eval $_doit
 			_return=$?
-			[ $_return -ne 0 ] && [ -z "$rc_force" ] && return 1
+			[ $_return -ne 0 ] && [ -z "$rc_force" ] && (echo_fancy "FAILED" 9) && return 1
 
 					# finally, run postcmd
 					#
@@ -681,15 +693,19 @@
 				debug "run_rc_command: evaluating ${_postcmd}()."
 				eval $_postcmd
 			fi
+ 			echo_fancy "  OK  " 9
 			;;
 
 		stop)
+ 			echo -n "Stopping ${name}"
 			if [ -z "$rc_pid" ]; then
 				[ -n "$rc_fast" ] && return 0
 				if [ -n "$pidfile" ]; then
+ 					echo_fancy " SKIP " 9
 					echo 1>&2 \
 				    "${name} not running? (check $pidfile)."
 				else
+ 					echo_fancy " SKIP " 9
 					echo 1>&2 "${name} not running?"
 				fi
 				return 1
@@ -702,12 +718,11 @@
 				eval $_precmd
 				_return=$?
 				[ $_return -ne 0 ] && [ -z "$rc_force" ] &&
-				    return 1
+					(echo_fancy "ERROR " 9) && return 1
 			fi
 
 					# send the signal to stop
 					#
-			echo "Stopping ${name}."
 			_doit="kill -${sig_stop:-TERM} $rc_pid"
 			if [ -n "$_user" ]; then
 				_doit="su -m $_user -c 'sh -c \"$_doit\"'"
@@ -718,7 +733,7 @@
 					#
 			eval $_doit
 			_return=$?
-			[ $_return -ne 0 ] && [ -z "$rc_force" ] && return 1
+			[ $_return -ne 0 ] && [ -z "$rc_force" ] && (echo_fancy "FAILED" 9) && return 1
 
 					# wait for the command to exit,
 					# and run postcmd.
@@ -727,24 +742,27 @@
 				eval $_postcmd
 				_return=$?
 			fi
+ 			echo_fancy "  OK  " 9
 			;;
 
 		reload)
+ 			echo -n "Reloading ${name} config files"
 			if [ -z "$rc_pid" ]; then
 				if [ -n "$pidfile" ]; then
+ 					echo_fancy "SKIPPED" 23
 					echo 1>&2 \
 				    "${name} not running? (check $pidfile)."
 				else
+ 					echo_fancy "SKIPPED" 23
 					echo 1>&2 "${name} not running?"
 				fi
 				return 1
 			fi
-			echo "Reloading ${name} config files."
 			if [ -n "$_precmd" ]; then
 				eval $_precmd
 				_return=$?
 				[ $_return -ne 0 ] && [ -z "$rc_force" ] &&
-				    return 1
+ 				    (echo_fancy "FAILED" 23) && return 1
 			fi
 			_doit="kill -${sig_reload:-HUP} $rc_pid"
 			if [ -n "$_user" ]; then
@@ -752,11 +770,12 @@
 			fi
 			eval $_doit
 			_return=$?
-			[ $_return -ne 0 ] && [ -z "$rc_force" ] && return 1
+			[ $_return -ne 0 ] && [ -z "$rc_force" ] && (echo_fancy "FAILED" 23) && return 1
 			if [ -n "$_postcmd" ]; then
 				eval $_postcmd
 				_return=$?
 			fi
+			echo_fancy "  OK  " 23
 			;;
 
 		restart)
@@ -1428,3 +1447,47 @@
 }
 
 fi
+
+echo_fancy () {
+	columns=80
+	label=$1
+	labelprefix=""
+	labelsuffix=""
+	if [ x$rc_fancy_color = "xYES" ]; then
+	  labelsuffix="\e[0m"
+	  case $label in
+	    *OK*)
+		  labelprefix="\e[1;32;40m"
+		  ;;
+		*FAILED*|*ERROR*)
+		  labelprefix="\e[1;31;40m"
+		  ;;
+		*SKIP*)
+		  labelprefix="\e[1;33;40m"
+		  ;;
+	  esac
+	fi
+	namesize=${#name}
+	rc_argsize=${#rc_arg}
+	padding=""
+	paddingsize=$(($columns - 15 - $2 - $namesize))
+	until [ 0 = ${paddingsize} ]; do
+		padding=" $padding"
+		paddingsize=$(($paddingsize - 1))
+	done
+	if checkyesno rc_fancy; then
+		if [ $2 = 0 ]; then
+	    	padding=""
+			paddingsize=$((60 - $namesize - $rc_argsize))
+			until [ 0 = ${paddingsize} ]; do
+		  		padding=" $padding"
+		  		paddingsize=$(($paddingsize - 1))
+			done
+			echo -e "\rRunning ${rc_arg} $name $padding [${labelprefix}${label}${labelsuffix}]"
+		else
+			echo -e " ... $padding [$labelprefix$label$labelsuffix]"
+		fi
+	else
+		echo "."
+	fi
+}

------=_Part_24891_26292795.1145398204205--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?346a80220604181510i10c82020s633816faec8ad3e1>