diff options
| -rwxr-xr-x | bitbake/bin/toaster | 80 |
1 files changed, 5 insertions, 75 deletions
diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index 2c3432c24a..fbda8dc9f4 100755 --- a/bitbake/bin/toaster +++ b/bitbake/bin/toaster | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/echo ERROR: This script needs to be sourced. Please run as . |
| 2 | # (c) 2013 Intel Corp. | 2 | # (c) 2013 Intel Corp. |
| 3 | 3 | ||
| 4 | # This program is free software; you can redistribute it and/or modify | 4 | # This program is free software; you can redistribute it and/or modify |
| @@ -81,9 +81,7 @@ webserverStartAll() | |||
| 81 | return $retval | 81 | return $retval |
| 82 | fi | 82 | fi |
| 83 | 83 | ||
| 84 | if [ "$TOASTER_MANAGED" = '1' ]; then | 84 | python $BBBASEDIR/lib/toaster/manage.py checksettings --traceback || retval=1 |
| 85 | python $BBBASEDIR/lib/toaster/manage.py checksettings --traceback || retval=1 | ||
| 86 | fi | ||
| 87 | 85 | ||
| 88 | if [ $retval -eq 1 ]; then | 86 | if [ $retval -eq 1 ]; then |
| 89 | printf "\nError while checking settings; aborting\n" | 87 | printf "\nError while checking settings; aborting\n" |
| @@ -176,8 +174,6 @@ else | |||
| 176 | TOASTER=$0 | 174 | TOASTER=$0 |
| 177 | fi | 175 | fi |
| 178 | 176 | ||
| 179 | [ `basename \"$0\"` = `basename \"${TOASTER}\"` ] && TOASTER_MANAGED=1 | ||
| 180 | |||
| 181 | BBBASEDIR=`dirname $TOASTER`/.. | 177 | BBBASEDIR=`dirname $TOASTER`/.. |
| 182 | 178 | ||
| 183 | RUNNING=0 | 179 | RUNNING=0 |
| @@ -234,88 +230,22 @@ for param in $*; do | |||
| 234 | esac | 230 | esac |
| 235 | done | 231 | done |
| 236 | 232 | ||
| 237 | if [ "$TOASTER_MANAGED" = '1' ]; then | 233 | if [ `basename \"$0\"` = `basename \"${TOASTER}\"` ]; then |
| 238 | # We are called as standalone. We refuse to run in a build environment - we need the interactive mode for that. | 234 | echo "Error: This script needs to be sourced. Please run as . $TOASTER" |
| 239 | # Start just the web server, point the web browser to the interface, and start any Django services. | 235 | exit 1 |
| 240 | |||
| 241 | if ! verify_prereq; then | ||
| 242 | echo "Error: Could not verify that the needed dependencies are installed. Please use virtualenv and pip to install dependencies listed in toaster-requirements.txt" 1>&2 | ||
| 243 | exit 1 | ||
| 244 | fi | ||
| 245 | |||
| 246 | if [ -n "$BUILDDIR" ]; then | ||
| 247 | printf "Error: It looks like you sourced oe-init-build-env. Toaster cannot start in build mode from an oe-core build environment.\n You should be starting Toaster from a new terminal window.\n" 1>&2 | ||
| 248 | exit 1 | ||
| 249 | fi | ||
| 250 | |||
| 251 | # Define a fake builddir where only the pid files are actually created. No real builds will take place here. | ||
| 252 | BUILDDIR=/tmp/toaster_$$ | ||
| 253 | if [ -d "$BUILDDIR" ]; then | ||
| 254 | echo "Previous toaster run directory $BUILDDIR found, cowardly refusing to start. Please remove the directory when that toaster instance is over" 2>&1 | ||
| 255 | exit 1 | ||
| 256 | fi | ||
| 257 | |||
| 258 | mkdir -p "$BUILDDIR" | ||
| 259 | |||
| 260 | RUNNING=1 | ||
| 261 | trap_ctrlc() { | ||
| 262 | echo "** Stopping system" | ||
| 263 | webserverKillAll | ||
| 264 | RUNNING=0 | ||
| 265 | } | ||
| 266 | |||
| 267 | do_cleanup() { | ||
| 268 | find "$BUILDDIR" -type f | xargs rm | ||
| 269 | rmdir "$BUILDDIR" | ||
| 270 | } | ||
| 271 | cleanup() { | ||
| 272 | if grep -ir error "$BUILDDIR" >/dev/null; then | ||
| 273 | if grep -irn "That port is already in use" "$BUILDDIR"; then | ||
| 274 | echo "You can use the \"webport=PORTNUMBER\" parameter to start Toaster on a different port (port $WEB_PORT is already in use)" | ||
| 275 | do_cleanup | ||
| 276 | else | ||
| 277 | printf "\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" | ||
| 278 | fi | ||
| 279 | else | ||
| 280 | echo "No errors found, removing the run directory '$BUILDDIR'" | ||
| 281 | do_cleanup | ||
| 282 | fi | ||
| 283 | } | ||
| 284 | export TOASTER_MANAGED=1 | ||
| 285 | if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then | ||
| 286 | echo "Failed to start the web server, stopping" 1>&2 | ||
| 287 | cleanup | ||
| 288 | exit 1 | ||
| 289 | fi | ||
| 290 | if [ $WEBSERVER -gt 0 ] && [ $NOBROWSER -eq 0 ] ; then | ||
| 291 | echo "Starting browser..." | ||
| 292 | xdg-open http://127.0.0.1:$WEB_PORT/ >/dev/null 2>&1 & | ||
| 293 | fi | ||
| 294 | trap trap_ctrlc 2 | ||
| 295 | echo "Toaster is now running. You can stop it with Ctrl-C" | ||
| 296 | while [ $RUNNING -gt 0 ]; do | ||
| 297 | python $BBBASEDIR/lib/toaster/manage.py runbuilds 2>&1 | tee -a "$BUILDDIR/toaster.log" | ||
| 298 | sleep 1 | ||
| 299 | done | ||
| 300 | cleanup | ||
| 301 | echo "**** Exit" | ||
| 302 | exit 0 | ||
| 303 | fi | 236 | fi |
| 304 | 237 | ||
| 305 | |||
| 306 | if ! verify_prereq; then | 238 | if ! verify_prereq; then |
| 307 | echo "Error: Could not verify that the needed dependencies are installed. Please use virtualenv and pip to install dependencies listed in toaster-requirements.txt" 1>&2 | 239 | echo "Error: Could not verify that the needed dependencies are installed. Please use virtualenv and pip to install dependencies listed in toaster-requirements.txt" 1>&2 |
| 308 | return 1 | 240 | return 1 |
| 309 | fi | 241 | fi |
| 310 | 242 | ||
| 311 | |||
| 312 | # We make sure we're running in the current shell and in a good environment | 243 | # We make sure we're running in the current shell and in a good environment |
| 313 | if [ -z "$BUILDDIR" ] || ! which bitbake >/dev/null 2>&1 ; then | 244 | if [ -z "$BUILDDIR" ] || ! which bitbake >/dev/null 2>&1 ; then |
| 314 | echo "Error: Build environment is not setup or bitbake is not in path." 1>&2 | 245 | echo "Error: Build environment is not setup or bitbake is not in path." 1>&2 |
| 315 | return 2 | 246 | return 2 |
| 316 | fi | 247 | fi |
| 317 | 248 | ||
| 318 | |||
| 319 | # Determine the action. If specified by arguments, fine, if not, toggle it | 249 | # Determine the action. If specified by arguments, fine, if not, toggle it |
| 320 | if [ "$1" = 'start' ] || [ "$1" = 'stop' ]; then | 250 | if [ "$1" = 'start' ] || [ "$1" = 'stop' ]; then |
| 321 | CMD="$1" | 251 | CMD="$1" |
