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