#!/bin/bash # 必須: 環境変数 sc4sc_token が設定されていることを確認 if [ -z "$sc4sc_token" ]; then echo "Error: 環境変数 sc4sc_token が設定されていません。" exit 1 fi # スクリプト実行元の絶対パス SRC_DIR=$(pwd) git lfs install git lfs pull # 作業用一時ディレクトリ WORK_DIR=$(mktemp -d) echo "作業ディレクトリ: $WORK_DIR" # Git 認証情報を含む URL REPO_URL="https://user:$sc4sc_token@huggingface.co/spaces/s-4-s/editor" # clone して main ブランチを取得 git clone "$REPO_URL" "$WORK_DIR" cd "$WORK_DIR" || exit 1 # 既存の内容を削除(.git を除く) find . -mindepth 1 -maxdepth 1 ! -name ".git" -exec rm -rf {} + # プロジェクト内容をコピー(.git, chromedriver を除く) rsync -av --exclude='.git' --exclude='chromedriver' --exclude="$(basename "$WORK_DIR")" "$SRC_DIR"/ ./ # DockerfileのCMDを置換(WORK_DIR にコピーされた後の Dockerfile に対して) DOCKERFILE="./Dockerfile" if [ -f "$DOCKERFILE" ]; then sed -i.bak 's|CMD /bin/sh -c "./upload.sh && npm start"|CMD /bin/sh -c "npm start"|' "$DOCKERFILE" fi # Git 操作 git config user.name "auto-deploy" git config user.email "auto@deploy.com" git add . git commit -m "Auto deploy at $(date '+%Y-%m-%d %H:%M:%S')" || echo "No changes to commit." git push origin main # 後始末 cd .. rm -rf "$WORK_DIR" echo "アップロード完了 ✅"