From 937ecd07d393ff3e543fb366b67876b498c9ac29 Mon Sep 17 00:00:00 2001 From: brian avery Date: Tue, 1 Mar 2016 11:40:55 +0000 Subject: [PATCH] bitbake: toaster: cleanup of bin/toaster startup code 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 (Bitbake rev: 88fddbe80f56828026bf93560037af52b5dab628) Signed-off-by: brian avery Signed-off-by: Elliot Smith Signed-off-by: Richard Purdie --- bitbake/bin/toaster | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index 72eae64166..d409554d13 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