Files
hop-gate/tools/gen_ent.sh

46 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# 프로젝트 루트 기준으로 실행한다고 가정.
# 이 스크립트를 프로젝트 루트에서 실행하지 않는다면,
# 아래 BASE_DIR 를 적절히 조정하거나 `cd`를 추가하세요.
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$BASE_DIR"
echo "[ent] project root: $BASE_DIR"
# 1. ent 바이너리 체크
if ! command -v ent >/dev/null 2>&1; then
echo "[ent] 'ent' CLI 가 설치되어 있지 않습니다."
echo " 설치: go install entgo.io/ent/cmd/ent@latest"
exit 1
fi
# 2. ./ent/schema/*.go 존재 확인
SCHEMA_DIR="$BASE_DIR/ent/schema"
if [ ! -d "$SCHEMA_DIR" ]; then
echo "[ent] 스키마 디렉터리가 없습니다: $SCHEMA_DIR"
exit 1
fi
shopt -s nullglob
SCHEMA_FILES=("$SCHEMA_DIR"/*.go)
shopt -u nullglob
if [ ${#SCHEMA_FILES[@]} -eq 0 ]; then
echo "[ent] 스키마 파일(./ent/schema/*.go)이 없습니다."
exit 1
fi
echo "[ent] schema files:"
for f in "${SCHEMA_FILES[@]}"; do
echo " - $f"
done
# 3. ent 코드 생성
echo "[ent] generating ent client from ./ent/schema"
ent generate ./ent/schema
echo "[ent] ent code generation complete."
echo "[ent] done."