#!/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