lsb-functions: include support for grml_colors handling
[grml-etc-core.git] / etc / grml / lsb-functions
index d55d776..4dc8441 100644 (file)
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 
+if [ "$(cat /proc/1/comm 2>/dev/null)" = "systemd" ] ; then
+  SYSTEMD=true
+else
+  SYSTEMD=false
+fi
+
 # log_*() functions {{{
 TPUT="${TPUT:-"/usr/bin/tput"}"
 
@@ -174,9 +180,18 @@ if [ -r /proc/cmdline ] ; then
 fi
 [ -n "$NOCOLORS" ] && RC_NOCOLOR='yes'
 RC_NOCOLOR="${RC_NOCOLOR:-no}"
+if [ "$RC_NOCOLOR" = "no" ] ; then
+  if [ -r /etc/grml_colors ] ; then
+    . /etc/grml_colors
+  fi
+fi
 
 # Can the terminal handle endcols?
-RC_ENDCOL="yes"
+if [ "${RC_NOCOLOR}" = "yes" ]; then
+  RC_ENDCOL="no"
+else
+  RC_ENDCOL="yes"
+fi
 
 # Setup COLS and ENDCOL so eend can line up the [ ok ]
 # width of [ ok ] == 7
@@ -404,4 +419,27 @@ ewend() {
 }
 #}}}
 
+# if we're using systemd then redfine functions for
+# output in systemd style
+if $SYSTEMD ; then
+  einfo() {
+    printf "[  ${GREEN}OK${NORMAL}  ] %s\n" "$*"
+  }
+
+  ewarn() {
+    printf "[ ${YELLOW}WARN${NORMAL} ] %s\n" "$*"
+  }
+
+  eerror() {
+    printf "[ ${RED}FAIL${NORMAL} ] %s\n" "$*"
+  }
+
+  eend() {
+    :
+  }
+fi
+
+# don't expose unneeded local variables
+unset SYSTEMD
+
 # vim: ft=sh tw=80 ts=4 foldmethod=marker