Mercurial > hg > beaglert
comparison scripts/build_pd.sh @ 165:30dade7bc2bc
Merge
author | chnrx <chris.heinrichs@gmail.com> |
---|---|
date | Thu, 03 Dec 2015 16:24:02 +0000 |
parents | 40badaff5729 |
children | 28d1473742bc |
comparison
equal
deleted
inserted
replaced
159:1e7db6610600 | 165:30dade7bc2bc |
---|---|
1 #!/bin/bash | |
2 | |
3 # shell script for automatic uploading/compiling of pd patch onto bbb | |
4 # Christian Heinrichs 2015 | |
5 # | |
6 # example usage: sh upload-and-compile.sh -f bwg-tests -q -e | |
7 | |
8 workingdir=".." | |
9 verbose="0" | |
10 render="0" | |
11 pdpath="" | |
12 projectpath="../projects/heavy/hvtemp" | |
13 BBB_PATH="~/BeagleRT" | |
14 BBB_ADDRESS="root@192.168.7.2" | |
15 COMMAND_ARGS= | |
16 RUN_PROJECT=1 | |
17 RUN_IN_FOREGROUND=0 | |
18 RUN_WITHOUT_SCREEN=1 | |
19 | |
20 function usage | |
21 { | |
22 echo " | |
23 USAGE: build_pd.sh [[-i input folder containing _main.pd file ] [-o output folder for new heavy project .c files (default ../projects/heavy/hvtemp)] [-b bbb path to copy to (default ~/BeagleRT)] | [-h]] | |
24 " | |
25 echo "example: build_pd.sh -i ../projects/heavy/pd/hello-world -o ../projects/heavy/hello-world" | |
26 } | |
27 | |
28 while [ "$1" != "" ]; do | |
29 case $1 in | |
30 -b | --bbb ) shift | |
31 BBB_PATH=$1 | |
32 ;; | |
33 -i | --input ) shift | |
34 pdpath=$1 | |
35 ;; | |
36 -o | --output ) shift | |
37 projectpath=$1 | |
38 ;; | |
39 -v | --verbose ) shift | |
40 verbose=1 | |
41 ;; | |
42 -r | --render ) shift | |
43 render=1 | |
44 ;; | |
45 -h | --help ) usage | |
46 exit | |
47 ;; | |
48 * ) usage | |
49 exit 1 | |
50 esac | |
51 shift | |
52 done | |
53 | |
54 /usr/bin/python hvresources/uploader.py "$pdpath"/ -n bbb -g c -o "$projectpath"/; | |
55 if [ $? -ne 0 ]; then | |
56 /usr/local/bin/python hvresources/uploader.py "$pdpath"/ -n bbb -g c -o "$projectpath"/; | |
57 if [ $? -ne 0 ]; then | |
58 #echo "ERROR: an error occurred while executing the uploader.py script" | |
59 echo "error" | |
60 exit 1 | |
61 fi; | |
62 fi; | |
63 echo ""; | |
64 #echo "*|*|* Successfully uploaded and converted pd patch into super-fast optimized C code. Brought to you by Heavy! *|*|*"; | |
65 echo ""; | |
66 | |
67 # check how to copy/sync render.cpp file... | |
68 if [ $render -eq 0 ]; then | |
69 cp "hvresources/render.cpp" $projectpath/; | |
70 fi; | |
71 | |
72 rsync -c -r "$projectpath"/ "$BBB_ADDRESS":"$BBB_PATH"/source; | |
73 | |
74 if [ $? -ne 0 ]; then | |
75 echo ""; | |
76 echo ":( :( :( ERROR: while synchronizing files with the BBB. Is the board connected and the correct SD card inserted? :( :( :("; | |
77 echo ""; | |
78 exit 1; | |
79 fi; | |
80 | |
81 # remove old executable and heavy context .o/.d files | |
82 ssh $BBB_ADDRESS "rm $BBB_PATH/BeagleRT $BBB_PATH/build/source/HvContext_bbb.d $BBB_PATH/build/source/HvContext_bbb.o $BBB_PATH/build/source/render.o $BBB_PATH/build/source/render.d"; | |
83 | |
84 # Make new BeagleRT executable and run | |
85 if [ $RUN_PROJECT -eq 0 ] | |
86 then | |
87 echo "Building project..." | |
88 ssh $BBB_ADDRESS "make all -C $BBB_PATH" | |
89 else | |
90 echo "Building and running project..." | |
91 | |
92 if [ $RUN_WITHOUT_SCREEN -ne 0 ] | |
93 then | |
94 ssh -t $BBB_ADDRESS "make all -C $BBB_PATH && $BBB_PATH/BeagleRT $COMMAND_ARGS" | |
95 elif [ $RUN_IN_FOREGROUND -eq 0 ] | |
96 then | |
97 ssh $BBB_ADDRESS "make all -C $BBB_PATH && screen -S BeagleRT -d -m $BBB_PATH/BeagleRT $COMMAND_ARGS" | |
98 else | |
99 ssh -t $BBB_ADDRESS "make all -C $BBB_PATH && screen -S BeagleRT $BBB_PATH/BeagleRT $COMMAND_ARGS" | |
100 fi | |
101 fi | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 #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 |