diff --git a/docker/devenv/files/start-tmux.sh b/docker/devenv/files/start-tmux.sh index 172b3f552..3c2e84b36 100755 --- a/docker/devenv/files/start-tmux.sh +++ b/docker/devenv/files/start-tmux.sh @@ -26,7 +26,7 @@ tmux send-keys -t uxbox 'cd uxbox/exporter' enter C-l tmux send-keys -t uxbox 'npx shadow-cljs watch main' enter tmux split-window -v tmux send-keys -t uxbox 'cd uxbox/exporter' enter C-l -tmux send-keys -t uxbox './bin/wait-and-start' enter +tmux send-keys -t uxbox './scripts/wait-and-start.sh' enter tmux new-window -t uxbox:3 -n 'backend' tmux select-window -t uxbox:3 diff --git a/exporter/scripts/build.sh b/exporter/scripts/build.sh new file mode 100755 index 000000000..fcb484ec3 --- /dev/null +++ b/exporter/scripts/build.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +source ~/.bashrc +set -ex + +npm ci +rm -rf target + +export NODE_ENV=production; + +# Build the application +npx shadow-cljs release main + +# Remove source +rm -rf target/app + +# Copy package*.json files +cp package-lock.json target/ +cp package.json target/ diff --git a/exporter/bin/wait-and-start b/exporter/scripts/wait-and-start.sh similarity index 100% rename from exporter/bin/wait-and-start rename to exporter/scripts/wait-and-start.sh diff --git a/exporter/shadow-cljs.edn b/exporter/shadow-cljs.edn index c5d4f9c60..590fdea8e 100644 --- a/exporter/shadow-cljs.edn +++ b/exporter/shadow-cljs.edn @@ -13,10 +13,8 @@ {:main {:target :node-script :main app.core/main - :output-to "target/exporter.js" - :output-dir "target/exporter/" - :asset-path "/js" - + :output-to "target/app.js" + :output-dir "target/app/" :devtools {:before-load-async app.core/stop :after-load app.core/start} diff --git a/frontend/scripts/build-app.sh b/frontend/scripts/build-app.sh index 20c20c6e1..71a143cca 100755 --- a/frontend/scripts/build-app.sh +++ b/frontend/scripts/build-app.sh @@ -12,7 +12,7 @@ export NODE_ENV=production; # Clean the output directory npx gulp clean || exit 1; -shadow-cljs release main --config-merge "{:release-version \"${TAG}\"}" +npx shadow-cljs release main --config-merge "{:release-version \"${TAG}\"}" npx gulp build || exit 1; npx gulp dist:clean || exit 1; npx gulp dist:copy || exit 1; diff --git a/manage.sh b/manage.sh index 4d5139d21..b3e8541df 100755 --- a/manage.sh +++ b/manage.sh @@ -64,6 +64,19 @@ function build-frontend { $IMAGE ./scripts/build-app.sh } +function build-exporter { + build-devenv-if-not-exists; + + local IMAGE=$DEVENV_IMGNAME:latest; + + echo "Running development image $IMAGE to build frontend." + docker run -t --rm \ + --mount source=`pwd`,type=bind,target=/home/uxbox/uxbox \ + --mount source=${HOME}/.m2,type=bind,target=/home/uxbox/.m2 \ + -w /home/uxbox/uxbox/exporter \ + $IMAGE ./scripts/build.sh +} + function build-backend { rm -rf ./backend/target/dist mkdir -p ./backend/target/dist @@ -145,6 +158,10 @@ case $1 in build-backend ;; + build-exporter) + build-exporter + ;; + *) usage ;;