#!/usr/bin/env bash set -euo pipefail cd $(dirname "$0")/.. if [ "$#" == 1 ]; then BOOK_LIBRARY="$1" else echo "usage: $0 path-to-book-directory" exit 1 fi # Watch books BUILD_BOOKS_CMD="echo \"const bookLibrary=\" > src/view/public/books.js && python src/main.py library >> src/view/public/books.js && echo src/view/public/books.js updated." watchexec \ --watch "$BOOK_LIBRARY" \ -- "$BUILD_BOOKS_CMD" & # Watch TypeScript cd src/view CHECK="echo -e 'Checking TypeScript…\n' && tsc --checkJs" BUILD="esbuild --bundle main.ts --target=es2017 --outdir=public" SHOW="echo -e '\nOpen $PWD/public/index.html'" watchexec \ --clear \ --watch client \ -- "$CHECK && $BUILD && $SHOW"