diff options
Diffstat (limited to 'bitbake/bin/toaster')
| -rwxr-xr-x | bitbake/bin/toaster | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index c3b8633c25..04f2e99378 100755 --- a/bitbake/bin/toaster +++ b/bitbake/bin/toaster | |||
| @@ -69,7 +69,7 @@ function webserverStartAll() | |||
| 69 | fi | 69 | fi |
| 70 | if [ $retval -eq 0 ]; then | 70 | if [ $retval -eq 0 ]; then |
| 71 | echo "Starting webserver..." | 71 | echo "Starting webserver..." |
| 72 | python $BBBASEDIR/lib/toaster/manage.py runserver "0.0.0.0:$WEB_PORT" </dev/null >${BUILDDIR}/toaster_web_$$.log 2>&1 & echo $! >${BUILDDIR}/.toastermain.pid | 72 | python $BBBASEDIR/lib/toaster/manage.py runserver "0.0.0.0:$WEB_PORT" </dev/null >>${BUILDDIR}/toaster_web.log 2>&1 & echo $! >${BUILDDIR}/.toastermain.pid |
| 73 | sleep 1 | 73 | sleep 1 |
| 74 | if ! cat "${BUILDDIR}/.toastermain.pid" | xargs -I{} kill -0 {} ; then | 74 | if ! cat "${BUILDDIR}/.toastermain.pid" | xargs -I{} kill -0 {} ; then |
| 75 | retval=1 | 75 | retval=1 |
| @@ -189,17 +189,43 @@ if [ -z "$ZSH_NAME" ] && [ `basename \"$0\"` = `basename \"$BASH_SOURCE\"` ]; th | |||
| 189 | fi | 189 | fi |
| 190 | 190 | ||
| 191 | # Define a fake builddir where only the pid files are actually created. No real builds will take place here. | 191 | # Define a fake builddir where only the pid files are actually created. No real builds will take place here. |
| 192 | BUILDDIR=/tmp | 192 | BUILDDIR=/tmp/toaster_$$ |
| 193 | if [ -d "$BUILDDIR" ]; then | ||
| 194 | echo -e "Previous toaster run directory $BUILDDIR found, cowardly refusing to start. Please remove the directory when that toaster instance is over" 2>&1 | ||
| 195 | exit 1; | ||
| 196 | fi | ||
| 197 | |||
| 198 | mkdir -p "$BUILDDIR" | ||
| 199 | |||
| 193 | RUNNING=1 | 200 | RUNNING=1 |
| 194 | function trap_ctrlc() { | 201 | function trap_ctrlc() { |
| 195 | echo "** Stopping system" | 202 | echo "** Stopping system" |
| 196 | webserverKillAll | 203 | webserverKillAll |
| 197 | RUNNING=0 | 204 | RUNNING=0 |
| 198 | } | 205 | } |
| 206 | |||
| 207 | function do_cleanup() { | ||
| 208 | find "$BUILDDIR" -type f | xargs rm | ||
| 209 | rmdir "$BUILDDIR" | ||
| 210 | } | ||
| 211 | function cleanup() { | ||
| 212 | if grep -ir error "$BUILDDIR" >/dev/null; then | ||
| 213 | if grep -irn "That port is already in use" "$BUILDDIR"; then | ||
| 214 | echo "You can use the \"webport=PORTNUMBER\" parameter to start Toaster on a different port (port $WEB_PORT is already in use)" | ||
| 215 | do_cleanup | ||
| 216 | else | ||
| 217 | echo -e "\nErrors found in the Toaster log files present in '$BUILDDIR'. Directory will not be cleaned.\n Please review the errors and notify toaster@yoctoproject.org or submit a bug https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Toaster" | ||
| 218 | fi | ||
| 219 | else | ||
| 220 | echo "No errors found, removing the run directory '$BUILDDIR'" | ||
| 221 | do_cleanup | ||
| 222 | fi; | ||
| 223 | } | ||
| 199 | TOASTER_MANAGED=1 | 224 | TOASTER_MANAGED=1 |
| 200 | export TOASTER_MANAGED=1 | 225 | export TOASTER_MANAGED=1 |
| 201 | if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then | 226 | if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then |
| 202 | echo "Failed to start the web server, stopping" 1>&2; | 227 | echo "Failed to start the web server, stopping" 1>&2; |
| 228 | cleanup | ||
| 203 | exit 1; | 229 | exit 1; |
| 204 | fi | 230 | fi |
| 205 | if [ $WEBSERVER -gt 0 ]; then | 231 | if [ $WEBSERVER -gt 0 ]; then |
| @@ -209,9 +235,10 @@ if [ -z "$ZSH_NAME" ] && [ `basename \"$0\"` = `basename \"$BASH_SOURCE\"` ]; th | |||
| 209 | trap trap_ctrlc SIGINT | 235 | trap trap_ctrlc SIGINT |
| 210 | echo "Toaster is now running. You can stop it with Ctrl-C" | 236 | echo "Toaster is now running. You can stop it with Ctrl-C" |
| 211 | while [ $RUNNING -gt 0 ]; do | 237 | while [ $RUNNING -gt 0 ]; do |
| 212 | python $BBBASEDIR/lib/toaster/manage.py runbuilds | 238 | python $BBBASEDIR/lib/toaster/manage.py runbuilds 2>&1 | tee -a "$BUILDDIR/toaster.log" |
| 213 | sleep 1 | 239 | sleep 1 |
| 214 | done | 240 | done |
| 241 | cleanup | ||
| 215 | echo "**** Exit" | 242 | echo "**** Exit" |
| 216 | exit 0 | 243 | exit 0 |
| 217 | fi | 244 | fi |
| @@ -275,8 +302,8 @@ case $CMD in | |||
| 275 | fi | 302 | fi |
| 276 | unset BBSERVER | 303 | unset BBSERVER |
| 277 | PREREAD="" | 304 | PREREAD="" |
| 278 | if [ -e conf/toaster-pre.conf ]; then | 305 | if [ -e ${BUILDDIR}/conf/toaster-pre.conf ]; then |
| 279 | PREREAD="--read conf/toaster-pre.conf" | 306 | rm ${BUILDDIR}/conf/toaster-pre.conf |
| 280 | fi | 307 | fi |
| 281 | bitbake $PREREAD --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0 | 308 | bitbake $PREREAD --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0 |
| 282 | if [ $? -ne 0 ]; then | 309 | if [ $? -ne 0 ]; then |
| @@ -285,7 +312,7 @@ case $CMD in | |||
| 285 | else | 312 | else |
| 286 | export BBSERVER=0.0.0.0:-1 | 313 | export BBSERVER=0.0.0.0:-1 |
| 287 | if [ $NOTOASTERUI == 0 ]; then # we start the TOASTERUI only if not inhibited | 314 | if [ $NOTOASTERUI == 0 ]; then # we start the TOASTERUI only if not inhibited |
| 288 | bitbake --observe-only -u toasterui >${BUILDDIR}/toaster_ui.log 2>&1 & echo $! >${BUILDDIR}/.toasterui.pid | 315 | bitbake --observe-only -u toasterui >>${BUILDDIR}/toaster_ui.log 2>&1 & echo $! >${BUILDDIR}/.toasterui.pid |
| 289 | fi | 316 | fi |
| 290 | fi | 317 | fi |
| 291 | if [ $start_success -eq 1 ]; then | 318 | if [ $start_success -eq 1 ]; then |
