comparison scripts/build_pd_heavy.sh @ 492:e9821d65b9ba prerelease

Heavy: your patch on the enzienaudio website should be called bela. You need to update that from your enzienaudio.com account.
author Giulio Moro <giuliomoro@yahoo.it>
date Tue, 21 Jun 2016 17:36:58 +0100
parents b6b532e88a5c
children 85ba865d3845
comparison
equal deleted inserted replaced
491:89212ad6a0bf 492:e9821d65b9ba
1 #!/bin/sh 1 #!/bin/sh
2 2
3 # shell script for automatic uploading/compiling of pd patch onto bbb 3 # shell script for automatic uploading/compiling of pd patch onto bbb
4 # Christian Heinrichs 2015 4 # Christian Heinrichs 2015
5 # 5 #
6 # example usage: sh upload-and-compile.sh -f bwg-tests -q -e
7 6
8 trap "{ echo "";exit 0; }" 2 7 trap "{ echo "";exit 0; }" 2
9 8
10 workingdir=".." 9 workingdir=".."
11 pdpath="" 10 pdpath=""
45 44
46 usage () 45 usage ()
47 { 46 {
48 printf "\nUSAGE: build_pd.sh [[-i input folder containing _main.pd file ]\ 47 printf "\nUSAGE: build_pd.sh [[-i input folder containing _main.pd file ]\
49 [-o output folder for temp heavy project .c files (default $projectpath)]\ 48 [-o output folder for temp heavy project .c files (default $projectpath)]\
50 [-b bbb path to copy to (default ~/Bela)] | [-h] | [-w|--watch] | [-n|--noupload] | [-r|--release arg]\n" 49 [-b remote path to copy to (default ~/Bela)] | [-h] | [-w|--watch] | [-n|--noupload] | [-r|--release arg]\n"
51 printf "\nexample: build_pd.sh -i ../projects/heavy/pd/hello-world -o ../projects/heavy/hello-world\n" 50 printf "\nexample: build_pd.sh -i ../projects/heavy/pd/hello-world -o ../projects/heavy/hello-world\n"
52 echo "If --watch is selected, the script will check every 1s for any file that is modified in the source folder, which re-triggers\ 51 echo "If --watch is selected, the script will check every 1s for any file that is modified in the source folder, which re-triggers\
53 the building process. 52 the building process.
54 If --screen is selected, the prompt returns to the user after launching Bela in a screen on the target device. 53 If --screen is selected, the prompt returns to the user after launching Bela in a screen on the target device.
55 If --screen and --watch are combined, while the process is running in the screen, modifications to the source files will \ 54 If --screen and --watch are combined, while the process is running in the screen, modifications to the source files will \
85 exit 1 84 exit 1
86 esac 85 esac
87 shift 86 shift
88 done 87 done
89 88
90 [ -z "$ENZIENAUDIO_COM_PATCH_NAME" ] && ENZIENAUDIO_COM_PATCH_NAME=bbb 89 [ -z "$ENZIENAUDIO_COM_PATCH_NAME" ] && ENZIENAUDIO_COM_PATCH_NAME=bela
91 [ "$NO_UPLOAD" -eq 0 ] && [ -z "$pdpath" ] && { echo "Error: a path to the source folder should be provided"; exit 1; } 90 [ "$NO_UPLOAD" -eq 0 ] && [ -z "$pdpath" ] && { echo "Error: a path to the source folder should be provided"; exit 1; }
92 91
93 if [ -z "$release" ] 92 if [ -z "$release" ]
94 then 93 then
95 RELEASE_STRING= 94 RELEASE_STRING=
153 echo "Updating files on board..." 152 echo "Updating files on board..."
154 # HvContext* files tend to hang when transferring with rsync because they are very large and -c checksum takes a lot, I guess 153 # HvContext* files tend to hang when transferring with rsync because they are very large and -c checksum takes a lot, I guess
155 154
156 touch $reference_time_file 155 touch $reference_time_file
157 # Transfer the files 156 # Transfer the files
158 rsync -ac --out-format=" %n" --no-t --delete-after --exclude='HvContext*' --exclude=build --exclude=$BBB_PROJECT_NAME "$projectpath"/ "$BBB_NETWORK_TARGET_FOLDER" &&\ 157 rsync -ac --out-format=" %n" --no-t --delete-during --exclude='HvContext_'$ENZIENAUDIO_COM_PATCH_NAME'.*' --exclude=build --exclude=$BBB_PROJECT_NAME "$projectpath"/ "$BBB_NETWORK_TARGET_FOLDER" &&\
159 { [ $NO_UPLOAD -eq 1 ] || scp "$projectpath"/HvContext* $BBB_NETWORK_TARGET_FOLDER; } ||\ 158 { [ $NO_UPLOAD -eq 1 ] || scp "$projectpath"/HvContext* $BBB_NETWORK_TARGET_FOLDER; } ||\
160 { echo "ERROR: while synchronizing files with the BBB. Is the board connected?"; exit 1; } 159 { echo "ERROR: while synchronizing files with the BBB. Is the board connected?"; exit 1; }
161 160
162 # TODO: rsync should upload a list of modified files, so that the corresponding objects can be deleted 161 # TODO: rsync should upload a list of modified files, so that the corresponding objects can be deleted
163 # TODO: this should be run only when Heavy_bbb.h changes. Otherwise render is recompiled every time for no good reason 162 # TODO: this should be run only when Heavy_bela.h changes. Otherwise render is recompiled every time for no good reason
164 #ssh $BBB_ADDRESS "rm -rf ${BBB_PROJECT_FOLDER}/build/render.*" 163 #ssh $BBB_ADDRESS "rm -rf ${BBB_PROJECT_FOLDER}/build/render.*"
165 164
166 #produce a list of files which content has changed (not just the date) 165 #produce a list of files which content has changed (not just the date)
167 #TODO: could be made faster (perhaps) by backing up the folder locally instead of bbb 166 # remove old executable to force re-linking
168 # UPDATED_FILES=`rsync -naic --log-format="%f" "$projectpath" "$BBB_BELA_HOME"/source | grep -v "\.$"`
169 # echo "UPDATEDFILES : $UPDATED_FILES"
170 # exit 2
171 # remove old executable
172 #if [ $NO_UPLOAD -eq 0 ]; then 167 #if [ $NO_UPLOAD -eq 0 ]; then
173 # ssh $BBB_ADDRESS "rm -rf "$BBB_PROJECT_FOLDER/$BBB_PROJECT_NAME; 168 # ssh $BBB_ADDRESS "rm -rf "$BBB_PROJECT_FOLDER/$BBB_PROJECT_NAME;
174 #fi; 169 #fi;
175 # Make new Bela executable and run 170 # Make new Bela executable and run
176 # It does not look very nice that we type the same things over and over 171 # It does not look very nice that we type the same things over and over
237 folder_has_changed "$pdpath" "$reference_time_file" "\.pd" &&\ 232 folder_has_changed "$pdpath" "$reference_time_file" "\.pd" &&\
238 NO_UPLOAD=$BACK_NO_UPLOAD || NO_UPLOAD=1 233 NO_UPLOAD=$BACK_NO_UPLOAD || NO_UPLOAD=1
239 uploadBuildRun 234 uploadBuildRun
240 done 235 done
241 fi; 236 fi;
242 #ssh -t root@192.168.7.2 "kill -s 2 \`pidof heavy_template\` 2>/dev/null; sleep 0.5; rm -f ~/$filename_bbb/Release/source/heavy/HvContext_bbb.? ~/$filename_bbb/Release/heavy_template && make all -C ~/$filename_bbb/Release" &>/dev/null