10 if [[ "$COMMAND" == "" ]]; then
11 echo "Error: You did not give me a command to run!"
16 #if [[ ! -e "$IRTRANS_SHLIB_DIR" ]]; then
17 # echo "Error: IRTrans dir does not exist!"
23 --conf|conf
) test_conf
"${ARGS[@]:1}";;
24 --make|
make) test_make
"${ARGS[@]:1}";;
25 --test|
test) test_test
"${ARGS[@]:1}";;
26 --clean|clean
) test_clean
"${ARGS[@]:1}";;
27 --install|
install|inst
) test_install
"${ARGS[@]:1}";;
28 --run|run
) test_run
"${ARGS[@]:1}";;
29 --runcheck|runcheck
) test_runcheck
"${ARGS[@]:1}";;
30 --run-in-stand-alone) test_run_in_stand_alone
"${ARGS[@]:1}";;
31 --checklog|checklog
) test_checklog
"${ARGS[@]:1}";;
32 *) echo "Error: Unknown command \"$COMMAND\"";
42 echo "Usage: $SCRIPT_NAME COMMAND [ options ]"
53 "$SCRIPT_DIR"/irreco.sh clean
56 "$SCRIPT_DIR"/backend.sh all clean
59 print_title
"CLEAN INSTALL DIR"
60 rm -rfv "$INSTALL_DIR"
62 #print_title "CLEAN SCRIPT TMP"
63 #rm -rfv "$SCRIPT_TMP_DIR/"*
68 #"$SCRIPT_DIR"/irtrans.sh untar "irtrans_noccf"
70 #"$SCRIPT_DIR"/irtrans.sh make "irtrans_noccf"
73 match_sb_target
"$SCRIPT_TMP_DIR/irreco_sb_target"
74 if [[ "$?" != "0" ]]; then test_clean
; fi
76 mkdir
-p "$INSTALL_DIR"
78 if [ ! -f "$SCRIPT_PARENT_DIR"/irreco
/Makefile
]; then
79 "$SCRIPT_DIR"/irreco.sh conf
83 "$SCRIPT_DIR"/irreco.sh
install
86 #if [ ! -f "$SCRIPT_PARENT_DIR"/backend/irtrans/Makefile ]; then
87 # echo $IRTRANS_SHLIB_DIR
88 # echo $IRTRANS_IRSERVER_DIR
90 # "$SCRIPT_DIR"/backend.sh irtrans conf --prefix=/usr \
91 # "--with-irtrans=$IRTRANS_SHLIB_DIR"
92 # check_exit_code "$?"
95 if [ ! -f "$SCRIPT_PARENT_DIR"/backend
/mythtv
/installroot.tmp
]; then
96 "$SCRIPT_DIR"/backend.sh mythtv conf
100 #"$SCRIPT_DIR"/backend.sh dummy conf
101 #check_exit_code "$?"
102 #"$SCRIPT_DIR"/backend.sh lirc conf
103 #check_exit_code "$?"
104 #"$SCRIPT_DIR"/backend.sh mythtv conf
105 #check_exit_code "$?"
111 #"$SCRIPT_DIR"/irreco.sh make
112 #check_exit_code "$?"
113 "$SCRIPT_DIR"/backend.sh dummy
make
115 "$SCRIPT_DIR"/backend.sh lirc
make
117 #"$SCRIPT_DIR"/backend.sh irtrans make
118 #check_exit_code "$?"
119 "$SCRIPT_DIR"/backend.sh mythtv
make
127 #cp "$IRTRANS_SHLIB_DIR/libIRTrans.so" "$INSTALL_DIR/lib"
128 #check_exit_code "$?"
130 "$SCRIPT_DIR"/backend.sh dummy
install
132 "$SCRIPT_DIR"/backend.sh lirc
install
134 #"$SCRIPT_DIR"/backend.sh irtrans install
135 #check_exit_code "$?"
136 "$SCRIPT_DIR"/backend.sh mythtv
install
138 #"$SCRIPT_DIR"/irtrans.sh install
139 #check_exit_code "$?"
146 run-standalone.sh
"$SCRIPT_PATH" --run-in-stand-alone "$@" \
147 2>&1 |
tee "$RUN_LOG_FILE"
153 print_title
"RUN AND CHECK"
155 run-standalone.sh
"$SCRIPT_PATH" --run-in-stand-alone "$@" \
156 2>&1 |
tee "$RUN_LOG_FILE" \
157 |
sed 's|^|_|' | test_run_check_enter_exit
162 # Prepare directories
163 mkdir
-p "$INSTALL_DIR/lib"
165 mkdir
-p "$INSTALL_DIR/home/user/MyDocs"
168 if [ ! -e "$INSTALL_DIR/home/$USER" ]; then
169 cd "$INSTALL_DIR/home"
176 test_run_in_stand_alone
()
181 #declare -x HOME="$INSTALL_DIR/home/user"
184 declare -x PATH
="$PATH:$INSTALL_DIR/bin"
185 declare -x LD_LIBRARY_PATH
="$LD_LIBRARY_PATH:$INSTALL_DIR/lib"
188 cd "$INSTALL_DIR/home/user"
192 if [[ "$1" == "" ]]; then
193 echo "Running with default args."
194 "$INSTALL_DIR"/bin
/irreco
--debug=99
195 elif [[ "$1" == "strace" ]]; then
196 echo "Running with strace:" "$@"
197 strace
"$INSTALL_DIR"/bin
/irreco
--debug=99
198 elif [[ "$1" == "gdb" ]]; then
199 echo "Running with gdb:" "$@"
200 run-standalone.sh gdb
"$INSTALL_DIR"/bin
/irreco
203 "$INSTALL_DIR"/bin
/irreco
"$@"
209 test_is_log_check_needed
"$@" && \
210 cat "$RUN_LOG_FILE" |
sed 's|^|_|' | test_run_check_enter_exit
214 # Run some simple checks on the run_log to determinate if we need to do a
215 # thorough check of the log.
217 test_is_log_check_needed
()
219 if [[ "$1" == "force" ||
"$1" == "--force" ]]; then
220 echo -e "\n___ LOG CHECK FORCED ___________________________________________________________"
225 # Dont check the log if core dump happend. In that case the log will
226 # be incorrect anyways..
228 tail "$RUN_LOG_FILE" -n 1 |
grep 'core dumped' > /dev
/null
229 if [[ "$?" == "0" ]]; then
233 grep '<-' "$RUN_LOG_FILE" |
tail -n 1 |
grep '^[^ ]' > /dev
/null
234 if [[ "$?" != "0" ]]; then
235 echo -e "\n___ INDENT MISSMATCH, CHEKING LOG ______________________________________________"
239 grep 'INDENT COUNTER BELOW ZERO' "$RUN_LOG_FILE" > /dev
/null
240 if [[ "$?" == "0" ]]; then
241 echo -e "\n___ INDENT MISSMATCH, CHEKING LOG ______________________________________________"
245 echo "... log indent appears to be fine."
250 # This amazing piece of script checks that irreco ENTER and RETURN messages
253 test_run_check_enter_exit
()
255 PATTERN_ENTER
='^[a-zA-Z]+[ ]*-> ([a-z_0-9]*)'
256 PATTERN_RETURN
='^[a-zA-Z]+[ ]*<- ([a-z_0-9]*)'
260 while read -rs LINE
; do
262 # Bash read command strips leading spaces, so we use sed to
263 # insert _ the the beginning of every line. This strips
264 # _ away, so we get the original string.
268 echo "$LINE" |
egrep "$PATTERN_ENTER" > /dev
/null
269 if [[ "$?" == "0" ]]; then
271 FUNC
=`echo "$LINE" | egrep -o "$PATTERN_ENTER" \
272 | sed -r "s|$PATTERN_ENTER|\1|"`
273 if [ "$DEBUG" == "1" ]; then echo "Enter $i: $FUNC"; fi
277 echo "$LINE" |
egrep "$PATTERN_RETURN" > /dev
/null
278 if [[ "$?" == "0" ]]; then
280 FUNC
=`echo "$LINE" | egrep -o "$PATTERN_RETURN" \
281 | sed -r "s|$PATTERN_RETURN|\1|"`
282 if [ "$DEBUG" == "1" ]; then echo "Return $i: $FUNC"; fi
283 if [[ "${INDENT[$i]}" != "$FUNC" ]]; then
284 echo -e "\n___ ERROR ______________________________________________________________________"
285 echo "Returned from \"$FUNC\""
286 echo "Instead of \"${INDENT[$i]}\""
297 if [[ "${INDENT[$i]}" != "" ]]; then
298 echo -e "\n___ ERROR ______________________________________________________________________"
299 echo "Did not return from \"${INDENT[$i]}\""
300 echo "Program probably crashed inside of \"${INDENT[$i]}\""