[bitbake-devel] [PATCH] toaster: cleanup of bin/toaster startup code

Elliot Smith elliot.smith at intel.com
Tue Mar 1 11:40:55 UTC 2016


From: brian avery <avery.brian at gmail.com>

This cleanup fixes a few issues:

    1) Removes the superflous code to set toasterconf.json
       - this isn't used and referenced meta-yocto
    2) Changes exit to return so we don't surprise the user by exiting their shell
       - this is necessary because it is being sourced
    3) Removes the last references to the old TOASTER_MANAGED variable
       - this is historical and no longer used.
    4) Adds -t parameter to lsof
      - This stops it from dying on odd filesystems and is much
        faster since all we are using are processes anyway
    5) Handles start and stop as params
      - it was easy to confuse the script especially
        if we were calling it with parameters.
      - if start/stop isn't specified, it will still toggle

Signed-off-by: brian avery <avery.brian at gmail.com>
Signed-off-by: Elliot Smith <elliot.smith at intel.com>
---
 bitbake/bin/toaster | 41 +++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster
index 72eae64..d409554 100755
--- a/bitbake/bin/toaster
+++ b/bitbake/bin/toaster
@@ -128,7 +128,7 @@ stop_bitbake() {
     BBSERVER=0.0.0.0:-1 bitbake -m
     unset BBSERVER
     # force stop any misbehaving bitbake server
-    lsof bitbake.lock | awk '{print $2}' | grep "[0-9]\+" | xargs -n1 -r kill
+    lsof -t bitbake.lock | awk '{print $2}' | grep "[0-9]\+" | xargs -n1 -r kill
 }
 
 verify_prereq() {
@@ -177,7 +177,7 @@ if [ -n "$TEMPLATECONF" ]; then
         fi
         if [ ! -d "$TEMPLATECONF" ]; then
             echo >&2 "Error: '$TEMPLATECONF' must be a directory containing toasterconf.json"
-            [ "$TOASTER_MANAGED" = '1' ] && exit 1 || return 1
+            return 1
         fi
     fi
 fi
@@ -189,7 +189,7 @@ fi
 
 if [ ! -f $TOASTER_CONF ]; then
     echo "$TOASTER_CONF configuration file not found. Set TOASTER_CONF to specify file or fix .templateconf"
-    [ "$TOASTER_MANAGED" = '1' ] && exit 1 || return 1
+    return 1
 fi
 
 # this defines the dir toaster will use for
@@ -204,7 +204,7 @@ export TOASTER_DIR=`pwd`
 NOTOASTERUI=0
 WEBSERVER=1
 WEB_PORT="8000"
-
+unset CMD
 for param in $*; do
     case $param in
     noui )
@@ -213,6 +213,12 @@ for param in $*; do
     noweb )
             WEBSERVER=0
     ;;
+    start )
+            CMD=$param
+    ;;
+    stop )
+            CMD=$param
+    ;;
     webport=*)
             WEB_PORT="${param#*=}"
     esac
@@ -220,7 +226,7 @@ done
 
 if [ `basename \"$0\"` = `basename \"${TOASTER}\"` ]; then
     echo "Error: This script needs to be sourced. Please run as . $TOASTER"
-    exit 1
+    return 1
 fi
 
 if [ "$1" = 'restart-bitbake' ] ; then
@@ -240,22 +246,6 @@ if [ -z "$BUILDDIR" ] ||  ! which bitbake >/dev/null 2>&1 ; then
     return 2
 fi
 
-# this is the configuraton file we are using for toaster
-# note default is assuming yocto. Override this if you are
-# running in a pure OE environment and use the toasterconf.json
-# in meta/conf/toasterconf.json
-# note: for future there are a number of relative path assumptions
-# in the local layers that currently prevent using an arbitrary
-# toasterconf.json
-if [ "$TOASTER_CONF" = "" ]; then
-    TOASTER_CONF="$(dirname $TOASTER)/../../meta-yocto/conf/toasterconf.json"
-    export TOASTER_CONF=$(python -c "import os; print os.path.realpath('$TOASTER_CONF')")
-fi
-if [ ! -f $TOASTER_CONF ]; then
-    echo "$TOASTER_CONF configuration file not found."
-    echo " set TOASTER_CONF to specify a path"
-    return 1
-fi
 # this defines the dir toaster will use for
 # 1) clones of layers (in _toaster_clones )
 # 2) the build dir (in build)
@@ -267,9 +257,12 @@ fi
 export TOASTER_DIR=`dirname $BUILDDIR`
 
 # Determine the action. If specified by arguments, fine, if not, toggle it
-if [ "$1" = 'start' ] || [ "$1" = 'stop' ]; then
-    CMD="$1"
-else
+if [ "$CMD" = "start" ] ; then
+    if [ -n "$BBSERVER" ]; then
+	echo " Toaster is already running. Exiting..."
+	return 1
+fi
+elif [ "$CMD" = "" ]; then
     if [ -z "$BBSERVER" ]; then
         CMD="start"
     else
-- 
1.9.3

---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.




More information about the bitbake-devel mailing list