posimai-root/create-app.sh

124 lines
4.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# ============================================
# Posimai — 新規アプリ作成スクリプト
# 使い方: bash create-app.sh posimai-myapp "My App Name" "アプリの説明"
# ============================================
set -e
APP_ID="${1}"
APP_NAME="${2}"
APP_DESC="${3:-${APP_NAME}}"
# --- 引数チェック ---
if [ -z "$APP_ID" ] || [ -z "$APP_NAME" ]; then
echo "使い方: bash create-app.sh <app-id> <app-name> [description]"
echo "例: bash create-app.sh posimai-memo \"Posimai Memo\" \"メモ帳\""
exit 1
fi
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
TARGET_DIR="$SCRIPT_DIR/$APP_ID"
if [ -d "$TARGET_DIR" ]; then
echo "[ERROR] ディレクトリが既に存在します: $TARGET_DIR"
exit 1
fi
GITEA_BASE="http://100.76.7.3:3000/mai"
GITHUB_ORG="posimai"
echo "========================================"
echo " Posimai App Creator"
echo "========================================"
echo " APP_ID : $APP_ID"
echo " APP_NAME: $APP_NAME"
echo " APP_DESC: $APP_DESC"
echo "========================================"
echo ""
# --- Step 1: テンプレートコピー & 置換 ---
echo "Step 1: テンプレートをコピーして置換..."
cp -r "$SCRIPT_DIR/_template" "$TARGET_DIR"
# sed で 3 変数を一括置換macOS / Linux / Git Bash 対応)
find "$TARGET_DIR" -type f \( -name "*.html" -o -name "*.json" -o -name "*.js" -o -name "*.md" \) | while IFS= read -r f; do
sed -i "s/APP_NAME/$APP_NAME/g; s/APP_ID/$APP_ID/g; s/APP_DESCRIPTION/$APP_DESC/g" "$f"
done
echo " コピー完了: $TARGET_DIR"
# --- Step 2: Git 初期化 ---
echo ""
echo "Step 2: Git 初期化..."
cd "$TARGET_DIR"
git init -b main
git add .
git commit -m "init: $APP_NAME"
echo " Git 初期化完了"
# --- Step 3: Gitea にリポジトリ作成 ---
echo ""
echo "Step 3: Gitea にリポジトリを作成..."
# Gitea の認証情報(~/.netrc または環境変数から取得)
GITEA_TOKEN="${GITEA_TOKEN:-}"
if [ -n "$GITEA_TOKEN" ]; then
GITEA_AUTH="-H \"Authorization: token $GITEA_TOKEN\""
curl -s -X POST "http://100.76.7.3:3000/api/v1/user/repos" \
-H "Content-Type: application/json" \
-H "Authorization: token $GITEA_TOKEN" \
-d "{\"name\":\"$APP_ID\",\"private\":false,\"auto_init\":false}" \
> /dev/null
echo " Gitea リポジトリ作成完了API"
else
echo " [WARN] GITEA_TOKEN 未設定。Gitea リポジトリは手動で作成してください:"
echo " → http://100.76.7.3:3000 で $APP_ID リポジトリを作成後、Enter を押してください"
read -r
fi
# --- Step 4: GitHub にリポジトリ作成 ---
echo ""
echo "Step 4: GitHub にリポジトリを作成..."
gh repo create "$GITHUB_ORG/$APP_ID" --private --description "$APP_DESC" 2>&1 || {
echo " [WARN] GitHub リポジトリ作成に失敗(既存の可能性)。続行します。"
}
echo " GitHub リポジトリ作成完了"
# --- Step 5: リモート追加 & push ---
echo ""
echo "Step 5: リモートを追加して push..."
git remote add gitea "$GITEA_BASE/$APP_ID.git"
git remote add github "https://github.com/$GITHUB_ORG/$APP_ID.git"
npm run deploy
echo " push 完了"
# --- Step 6: Vercel 連携 ---
echo ""
echo "Step 6: Vercel と GitHub を連携..."
echo "https://github.com/$GITHUB_ORG/$APP_ID.git" | vercel git connect 2>&1 || {
echo " [WARN] vercel git connect に失敗。手動で連携してください。"
}
# --- Step 7: 初回本番デプロイ ---
echo ""
echo "Step 7: 初回本番デプロイをトリガー..."
git commit --allow-empty -m "ci: trigger initial Vercel deployment"
npm run deploy
echo ""
echo "========================================"
echo " 完了! $APP_NAME"
echo "========================================"
echo ""
echo " ディレクトリ : $TARGET_DIR"
echo " Gitea : http://100.76.7.3:3000/mai/$APP_ID"
echo " GitHub : https://github.com/$GITHUB_ORG/$APP_ID"
echo ""
echo " 次の必須作業Dashboard 更新):"
echo " 1. posimai-dashboard/src/data/projects.json にカードを追加"
echo " 2. ecosystem/page.tsx の NODES / EDGES に追加"
echo " 3. timeline/page.tsx の EVENTS に追加"
echo " 4. access/page.tsx の APPS に追加"
echo " 5. Dashboard をデプロイ: cd posimai-dashboard && npm run deploy"
echo ""