Files
yakcloud-starter/install.sh
jungwoo choi fbdf8f68df refactor(cli): 엔진 전역화(.yakcloud 다운로드 소스) + 스캐폴드 최소화 + shared 기본 — 0.18.0
엔진(deploy/ctl/dev.py)은 install.sh 가 ~/.config/yakcloud/lib 로 설치, CLI 가 전역 실행.
project init 스캐폴드 = 앱+매니페스트+얇은 .gitea CI 만. 데이터소스 기본 shared.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-29 13:08:21 +09:00

44 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env sh
# yakcloud CLI 설치 — PATH 의 bin 디렉터리에 내려받는다.
# curl -fsSL https://gitea.yakenator.io/yakenator/yakcloud-starter/raw/branch/main/install.sh | sh
# 설치 위치 변경: DEST=/usr/local/bin sh install.sh
set -e
REPO="${YAKCLOUD_STARTER_REPO:-https://gitea.yakenator.io/yakenator/yakcloud-starter}"
BRANCH="${YAKCLOUD_STARTER_BRANCH:-main}"
DEST="${DEST:-$HOME/.local/bin}"
mkdir -p "$DEST"
echo "▸ yakcloud CLI 설치 → $DEST/yakcloud"
# 캐시 우회(no-cache + 캐시버스터) — 항상 최신 bin 획득.
BUST="$(date +%s 2>/dev/null || echo 0)"
curl -fsSL -H 'Cache-Control: no-cache' -H 'Pragma: no-cache' \
"$REPO/raw/branch/$BRANCH/bin/yakcloud?nocache=$BUST" -o "$DEST/yakcloud"
chmod +x "$DEST/yakcloud"
# 전역 엔진(deploy/ctl/dev.py) → ~/.config/yakcloud/lib — 프로젝트에 복제하지 않는다(전역 1벌).
LIB_DIR="${YAKCLOUD_LIB_DIR:-$HOME/.config/yakcloud/lib}"
mkdir -p "$LIB_DIR"
for n in deploy ctl dev; do
curl -fsSL -H 'Cache-Control: no-cache' -H 'Pragma: no-cache' \
"$REPO/raw/branch/$BRANCH/.yakcloud/$n.py?nocache=$BUST" -o "$LIB_DIR/$n.py" 2>/dev/null \
|| echo " ⚠ 엔진 $n 다운로드 실패(무시 가능 — CLI 가 자동 재시도)"
done
echo "✓ 엔진 설치 → $LIB_DIR (deploy/ctl/dev.py)"
# Claude Code 전역 스킬 + 슬래시 명령(/yakcloud) 설치 — opt-out: YAKCLOUD_NO_CLAUDE_CMD=1
if [ -z "${YAKCLOUD_NO_CLAUDE_CMD:-}" ]; then
SKILL_DIR="${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}/yakcloud-deploy"
CMD_DIR="${CLAUDE_COMMANDS_DIR:-$HOME/.claude/commands}"
mkdir -p "$SKILL_DIR" "$CMD_DIR" 2>/dev/null || true
curl -fsSL -H 'Cache-Control: no-cache' -H 'Pragma: no-cache' \
"$REPO/raw/branch/$BRANCH/.claude/skills/yakcloud-deploy/SKILL.md?nocache=$BUST" -o "$SKILL_DIR/SKILL.md" 2>/dev/null \
&& echo "✓ 배포 스킬 설치 → $SKILL_DIR/SKILL.md" || echo " ⚠ 스킬 설치 건너뜀(무시 가능)"
curl -fsSL -H 'Cache-Control: no-cache' -H 'Pragma: no-cache' \
"$REPO/raw/branch/$BRANCH/.claude/commands/yakcloud.md?nocache=$BUST" -o "$CMD_DIR/yakcloud.md" 2>/dev/null \
&& echo "✓ /yakcloud 슬래시 명령 설치 → $CMD_DIR/yakcloud.md" || echo " ⚠ 슬래시 명령 설치 건너뜀(무시 가능)"
fi
echo "✓ 완료. PATH 에 $DEST 가 있는지 확인하세요:"
echo ' export PATH="$HOME/.local/bin:$PATH"'
echo " 터미널: yakcloud project init my-app → 개발 → yakcloud project deploy"
echo " Claude Code: /yakcloud project init my-app (전역 슬래시 명령)"