[dev-run] Add gdb/lldb shortcuts
authorEbrahim Byagowi <ebrahim@gnu.org>
Thu, 22 Feb 2018 13:18:03 +0000 (16:48 +0330)
committerGitHub <noreply@github.com>
Thu, 22 Feb 2018 13:18:03 +0000 (16:48 +0330)
src/dev-run.sh

index 5a7ae10..40f6463 100755 (executable)
 [ $# = 0 ] && echo Usage: "src/dev-run.sh [FONT-FILE] [TEXT]" && exit
 command -v entr >/dev/null 2>&1 || { echo >&2 "This script needs `entr` be installed"; exit 1; }
 
+GDB=gdb
+# if gdb doesn't exist, hopefully lldb exist
+command -v $GDB >/dev/null 2>&1 || export GDB="lldb"
+
 [ -f 'build/build.ninja' ] && CMAKENINJA=TRUE
 # or "fswatch -0 . -e build/ -e .git"
 find src/ | entr printf '\0' | while read -d ""; do
        clear
+       echo '===================================================='
        if [[ $CMAKENINJA ]]; then
-               ninja -Cbuild hb-shape hb-view
-               build/hb-shape $@
-               build/hb-view $@
+               ninja -Cbuild hb-shape hb-view && {
+                       build/hb-shape $@
+                       build/hb-view $@
+               }
        else
-               make -Cbuild/src -j5 -s lib
-               build/util/hb-shape $@
-               build/util/hb-view $@
+               make -Cbuild/src -j5 -s lib && {
+                       build/util/hb-shape $@
+                       build/util/hb-view $@
+               }
        fi
 done
 
-read -n 1 -p "Run the tests (y/n)? " answer
-if [[ "$answer" = "y" ]]; then
+read -n 1 -p "[T]est, [D]ebug, [R]estart, [Q]uit?" answer
+case "$answer" in
+t|T )
        if [[ $CMAKENINJA ]]; then
                CTEST_OUTPUT_ON_FAILURE=1 CTEST_PARALLEL_LEVEL=5 ninja -Cbuild test
        else
                make -Cbuild -j5 check && .ci/fail.sh
        fi
-fi
+;;
+d|D )
+       if [[ $CMAKENINJA ]]; then
+               echo "Not supported on cmake builds yet"
+       else
+               build/libtool --mode=execute $GDB hb-shape $@
+       fi
+;;
+r|R )
+       src/dev-run.sh $@
+;;
+* )
+       exit
+;;
+esac