You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
BACKEND_DIR="$ROOT_DIR/backend"
PC_ADMIN_DIR="$ROOT_DIR/pc-admin"
RELEASE_DIR="$ROOT_DIR/release"
SERVER_PACKAGE="$RELEASE_DIR/server"
PC_STATIC="$SERVER_PACKAGE/public/pc-admin"
NPM_BIN="${NPM_BIN:-npm}"
mkdir -p "$RELEASE_DIR"
RELEASE_FULL="$(cd "$RELEASE_DIR" && pwd -P)"
SERVER_PACKAGE_FULL="$RELEASE_FULL/server"
case "$SERVER_PACKAGE_FULL" in
"$RELEASE_FULL"/*) ;;
*)
echo "Refusing to clean package path outside release directory: $SERVER_PACKAGE_FULL" >&2
exit 1
;;
esac
rm -rf "$SERVER_PACKAGE_FULL"
mkdir -p "$PC_STATIC"
(
cd "$PC_ADMIN_DIR"
"$NPM_BIN" run build
)
cp -R "$BACKEND_DIR/src" "$SERVER_PACKAGE/src"
cp -R "$BACKEND_DIR/sql" "$SERVER_PACKAGE/sql"
cp "$BACKEND_DIR/package.json" "$SERVER_PACKAGE/"
cp "$BACKEND_DIR/package-lock.json" "$SERVER_PACKAGE/"
cp "$BACKEND_DIR/.env.example" "$SERVER_PACKAGE/"
cp -R "$PC_ADMIN_DIR/dist/." "$PC_STATIC/"
mkdir -p "$SERVER_PACKAGE/uploads"
echo "Server package ready: $SERVER_PACKAGE"
echo "Upload this directory, then run npm ci --omit=dev and npm start on the server."