mirror of
https://github.com/dalbodeule/hop-gate.git
synced 2025-12-07 20:35:44 +09:00
46 lines
1.2 KiB
Bash
Executable File
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."
|