4in1_ws_web/deploy/static.sh
2025-05-18 00:33:25 +03:00

38 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
die() {
>&2 echo "error: $*"
exit 1
}
set -e
if ! command -v yq >/dev/null 2>&1; then
die "yq is not installed. Please install yq to parse YAML files."
fi
PHP="$(which php)"
SCRIPT_DIR=$(cd "$(dirname "$(readlink -f "$0")")" && pwd)
APP_DIR="$(realpath "$SCRIPT_DIR/../")"
OUTPUT_ROOT_DIR=
while [ $# -gt 0 ]; do
case $1 in
-o) OUTPUT_ROOT_DIR="$2"; shift ;;
-h) usage ;;
*) die "unexpected argument: $1" ;;
esac
shift
done
[ -z "$OUTPUT_ROOT_DIR" ] && die "you must specify output directory"
PROJECTS=$("$SCRIPT_DIR"/util/get_projects.sh "$APP_DIR/config.yaml")
for project in $PROJECTS; do
"$SCRIPT_DIR"/util/build_css.sh -i "$APP_DIR/public/$project/scss" -o "$OUTPUT_ROOT_DIR/public/$project/dist-css" || die "build_css failed"
"$SCRIPT_DIR"/util/build_js.sh -i "$APP_DIR/public/common/js" -o "$OUTPUT_ROOT_DIR/public/$project/dist-js" || die "build_js failed"
$PHP "$SCRIPT_DIR"/util/gen_runtime_config.php \
--app-root "$OUTPUT_ROOT_DIR" \
--commit-hash "$(git rev-parse HEAD)" \
> "$OUTPUT_ROOT_DIR/config-runtime.php" || die "gen_runtime_config failed"
done