annotate scripts/setup_board.sh @ 412:a9c37b2a5b77 prerelease

Updated setup_board.sh, cleaner error handling, cleaner output
author Giulio Moro <giuliomoro@yahoo.it>
date Wed, 15 Jun 2016 23:05:09 +0100
parents 5f3d7c23ffa7
children
rev   line source
andrewm@58 1 #!/bin/bash
andrewm@58 2 #
giuliomoro@377 3 # This script copies the core Bela files to the BeagleBone Black
andrewm@58 4 # in preparation for building projects. It will remove any existing
giuliomoro@377 5 # Bela directory before copying the files over
andrewm@58 6
giuliomoro@367 7 [ -z "$BBB_ADDRESS" ] && BBB_ADDRESS="root@192.168.7.2"
giuliomoro@377 8 [ -z "$BBB_BELA_HOME" ] && BBB_BELA_HOME="~/Bela/"
andrewm@58 9 function usage
andrewm@58 10 {
andrewm@58 11 THIS_SCRIPT=`basename "$0"`
andrewm@58 12 echo "Usage: $THIS_SCRIPT [-b path-on-beaglebone]"
andrewm@58 13
andrewm@58 14 echo "
giuliomoro@377 15 This script copies the core Bela files to the BeagleBone, REMOVING
andrewm@58 16 any previous files found at that location. This should be done before
andrewm@58 17 running any of the other build scripts in this directory. The -b option
giuliomoro@367 18 changes the default path, which is otherwise $BBB_BELA_HOME."
andrewm@58 19 }
giuliomoro@412 20 trap "exit" SIGINT SIGTERM
giuliomoro@412 21
giuliomoro@412 22 function error_handler {
giuliomoro@412 23 [ $1 -eq 0 ] && printf "done\n" || { [ -z "$2" ] && printf "\nAn error occurred. Is the board connected?\n" || printf "$2"; exit 1; }
giuliomoro@412 24 }
andrewm@58 25
andrewm@58 26 OPTIND=1
giuliomoro@412 27 ALWAYS_YES=0
giuliomoro@412 28 while getopts "b:hy" opt; do
giuliomoro@412 29 case $opt in
giuliomoro@412 30 b) BBB_BELA_HOME=$OPTARG
giuliomoro@412 31 ;;
giuliomoro@412 32 h|\?) usage
giuliomoro@412 33 exit 1
giuliomoro@412 34 ;;
giuliomoro@412 35 y) ALWAYS_YES=1
giuliomoro@412 36 ;;
giuliomoro@412 37 esac
andrewm@58 38 done
andrewm@58 39
giuliomoro@377 40 echo "Copying Bela core files to $BBB_BELA_HOME"
andrewm@58 41
andrewm@58 42 shift $((OPTIND-1))
andrewm@58 43
andrewm@58 44 # Find location of this script so we can locate the rest of the files
giuliomoro@300 45 SCRIPTPATH=$(readlink "$0")
andrewm@58 46 SCRIPTDIR=$(dirname "$SCRIPTPATH")
l@405 47 [ -z "$IDE_FOLDER" ] && IDE_FOLDER=$SCRIPTDIR/../../bela-ide/
andrewm@58 48
giuliomoro@412 49 if [ $ALWAYS_YES -ne 1 ];
andrewm@58 50 then
giuliomoro@412 51 printf "Warning: this script will DELETE any existing Bela files from your BeagleBone! Continue? (y/N) "
giuliomoro@412 52 read REPLY;
giuliomoro@412 53 [ $REPLY != y ] && [ $REPLY != Y ] && { echo "Aborting..."; exit 1; }
giuliomoro@412 54 fi;
giuliomoro@412 55
giuliomoro@377 56 # Stop Bela if running and remove all files
giuliomoro@412 57 printf "Stopping Bela and removing old files..."
giuliomoro@412 58 ssh $BBB_ADDRESS "screen -X -S Bela quit &>/dev/null; pkill Bela; sleep 0.5 ; rm -rf $BBB_BELA_HOME ; mkdir $BBB_BELA_HOME";
giuliomoro@412 59 error_handler $?
andrewm@58 60
andrewm@58 61 # Copy relevant files to BeagleBone Black
giuliomoro@412 62 printf "Copying new files to BeagleBone..."
giuliomoro@412 63 scp -q -r $SCRIPTDIR/../core $SCRIPTDIR/../include $SCRIPTDIR/../Makefile $SCRIPTDIR/../libNE10.a $SCRIPTDIR/../libprussdrv.a $SCRIPTDIR/../examples $SCRIPTDIR/../Doxyfile $BBB_ADDRESS:$BBB_BELA_HOME &&\
giuliomoro@412 64 scp -q $SCRIPTDIR/../libpd.so $BBB_ADDRESS:/usr/lib
giuliomoro@412 65 error_handler $?
giuliomoro@412 66
giuliomoro@402 67 # Create remaining directories needed for building
giuliomoro@412 68 printf "Creating directory structure on BeagleBone..."
giuliomoro@412 69 ssh $BBB_ADDRESS "mkdir -p $BBB_BELA_HOME/build ; mkdir -p $BBB_BELA_HOME/build/core ; mkdir -p $BBB_BELA_HOME/build/projects; mkdir -p $BBB_BELA_HOME/projects"
giuliomoro@412 70 error_handler $?
giuliomoro@412 71
giuliomoro@412 72 printf "Creating on-board documentation..."
giuliomoro@412 73 ssh $BBB_ADDRESS "cd $BBB_BELA_HOME; doxygen &>/dev/null"
giuliomoro@412 74 error_handler $? "\nError while generating Doxygen documentation\n"
andrewm@58 75
giuliomoro@402 76 #-------------
giuliomoro@402 77 #Installing IDE
giuliomoro@412 78 stat $IDE_FOLDER/scripts/setup_IDE.sh &> /dev/null
giuliomoro@402 79 if [ $? -eq 0 ]
giuliomoro@402 80 then
giuliomoro@402 81 cd $IDE_FOLDER/scripts;
giuliomoro@412 82 ./setup_IDE.sh -y
giuliomoro@402 83 else
giuliomoro@412 84 echo "Bela was installed on the board, but No IDE was found, so the IDE was not installed. You can get a copy of the IDE files from https://github.com/LBDonovan/bela-ide"
giuliomoro@402 85 fi;