canvas/packages/build/build-all.sh

68 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# builds client, admin & server into one folder
# - client is mounted at /
# - admin is mounted at /admin
# ensure we are in packages/build
MY_DIR="$(cd "$(dirname "$0")"; pwd)"
OUT_DIR="$(cd "$MY_DIR/../../build"; pwd)"
cd $MY_DIR
# empty out directory
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/packages/lib
mkdir -p $OUT_DIR/packages/client
mkdir -p $OUT_DIR/packages/admin
mkdir -p $OUT_DIR/packages/server
mkdir -p $OUT_DIR/prisma
cp $MY_DIR/../../package.json $MY_DIR/../../package-lock.json $OUT_DIR/
LIB_DIR="$MY_DIR/../../packages/lib"
CLIENT_DIR="$MY_DIR/../../packages/client"
ADMIN_DIR="$MY_DIR/../../packages/admin"
SERVER_DIR="$MY_DIR/../../packages/server"
PRISMA_DIR="$SERVER_DIR/prisma"
cp -r $PRISMA_DIR/schema.prisma $PRISMA_DIR/migrations $OUT_DIR/prisma/
# --- Shared Library ---
echo "Building lib..."
cd "$MY_DIR/../.." && npm run-script build:lib
cd $LIB_DIR
mv dist $OUT_DIR/packages/lib
cp package.json $OUT_DIR/packages/lib/
# janky? fix to keep imports in dev
sed -i -e 's/"main": ".*"/"main": ".\/dist\/index.js"/' $OUT_DIR/packages/lib/package.json
# --- Main Client ---
echo "Building client..."
cd "$MY_DIR/../.." && npm run-script build:client
cd $CLIENT_DIR
mv dist/* $OUT_DIR/packages/client
rm -r dist # this dir is empty, delete it to prevent confusion
# --- Admin Client ---
echo "Building admin..."
cd "$MY_DIR/../../" && APP_ROOT=/admin npm run-script build:admin
cd $ADMIN_DIR
mv dist/* $OUT_DIR/packages/admin
rm -r dist # this dir is empty, delete it to prevent confusion
# --- Server ---
echo "Building server..."
cd "$MY_DIR/../../" && npm run-script build:server
cd $SERVER_DIR
mv dist $OUT_DIR/packages/server
cp package.json tool.sh $OUT_DIR/packages/server
# rm -r dist # this dir is empty, delete it to prevent confusion