refactor(build): эфемерные generated-копии — dev-materialize по стенду вместо постоянного дубля
This commit is contained in:
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user