56 lines
2.3 KiB
Bash
Executable File
56 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# dev-materialize.sh — локально материализовать сгенерированный код стенда в provider/.
|
|
#
|
|
# Кладёт в provider/ ЭФЕМЕРНУЮ копию (git-ignored), чтобы штатно работали
|
|
# go build / go test / IDE. Это НЕ путь релиза: релиз собирается только через
|
|
# 03_build_and_upload_provider.sh (temp-копия со свежесгенерированным кодом).
|
|
#
|
|
# Использование:
|
|
# ./TOOLS/scripts/dev-materialize.sh dev # dev | test | prod
|
|
#
|
|
# Требует предварительной генерации:
|
|
# TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/<stand>
|
|
|
|
STAND="${1:-}"
|
|
if [[ -z "$STAND" ]]; then
|
|
echo "Usage: $0 <stand> # dev | test | prod" >&2
|
|
exit 2
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="${ROOT_DIR:-$(cd "${SCRIPT_DIR}/../.." && pwd)}"
|
|
|
|
GEN_GO_DIR="${ROOT_DIR}/generated/${STAND}/go"
|
|
GEN_YAML_DIR="${ROOT_DIR}/generated/${STAND}/resources_yaml"
|
|
PROV_GO_DIR="${ROOT_DIR}/provider/internal/resources_gen"
|
|
PROV_YAML_DIR="${ROOT_DIR}/provider/resources_yaml"
|
|
|
|
if [[ ! -d "$GEN_GO_DIR" ]]; then
|
|
echo "ERROR: no generated go for stand '${STAND}': $GEN_GO_DIR" >&2
|
|
echo " Run: TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/${STAND}" >&2
|
|
exit 2
|
|
fi
|
|
if [[ ! -d "$GEN_YAML_DIR" ]]; then
|
|
echo "ERROR: no generated yaml for stand '${STAND}': $GEN_YAML_DIR" >&2
|
|
exit 2
|
|
fi
|
|
|
|
# 1) Go-ресурсы.
|
|
mkdir -p "$PROV_GO_DIR"
|
|
find "$PROV_GO_DIR" -maxdepth 1 -type f -name '*.go' -delete
|
|
cp -R "$GEN_GO_DIR"/*.go "$PROV_GO_DIR/"
|
|
|
|
# 2) YAML-спеки + embed.go (нужны для go:embed в resources_core).
|
|
mkdir -p "$PROV_YAML_DIR"
|
|
find "$PROV_YAML_DIR" -maxdepth 1 -type f \( -name '*.yaml' -o -name 'embed.go' \) -delete
|
|
cp -a "$GEN_YAML_DIR"/*.yaml "$PROV_YAML_DIR/"
|
|
cp "$GEN_YAML_DIR"/embed.go "$PROV_YAML_DIR/embed.go" 2>/dev/null || true
|
|
|
|
# 3) Маркер стенда — чтобы не спутать, какой стенд лежит в provider/.
|
|
printf '%s\n' "$STAND" > "$PROV_GO_DIR/.stand"
|
|
|
|
echo "Materialized stand '${STAND}' into provider/ (internal/resources_gen + resources_yaml)."
|
|
echo "This copy is ephemeral and git-ignored. Release build always uses 03_build_and_upload_provider.sh."
|