#!/usr/bin/env bash set -euo pipefail cd $(dirname "$0")/.. if [ "$#" == 1 ]; then BOOKS_LIBRARY="$1" else echo "usage: $0 path-to-book-directory" exit 1 fi # Watch books BUILD_BOOKS_CMD="echo \"const bookLibrary=\" > library/public/books.js && ./books library >> library/public/books.js && echo library/public/books.js updated." watchexec \ --watch "$BOOKS_LIBRARY" \ -- "$BUILD_BOOKS_CMD" & # Watch TypeScript cd library 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"