|
#!/bin/bash |
|
|
|
# Claude Code設定ファイルをGistにアップロードするスクリプト |
|
|
|
set -e |
|
|
|
# 引数の処理 |
|
GIST_ID="$1" |
|
|
|
CLAUDE_DIR="$HOME/.claude" |
|
TEMP_DIR="/tmp/claude-config-$(date +%s)" |
|
|
|
# 作業ディレクトリを作成 |
|
mkdir -p "$TEMP_DIR" |
|
|
|
echo "Claude Code設定ファイルを収集しています..." |
|
|
|
# settings.jsonをコピー |
|
if [ -f "$CLAUDE_DIR/settings.json" ]; then |
|
cp "$CLAUDE_DIR/settings.json" "$TEMP_DIR/" |
|
echo "✓ settings.json" |
|
else |
|
echo "⚠ settings.jsonが見つかりません" |
|
fi |
|
|
|
# hooksディレクトリの内容をコピー |
|
if [ -d "$CLAUDE_DIR/hooks" ]; then |
|
mkdir -p "$TEMP_DIR/hooks" |
|
cp -r "$CLAUDE_DIR/hooks/"* "$TEMP_DIR/hooks/" 2>/dev/null || true |
|
echo "✓ hooks/ ディレクトリ" |
|
else |
|
echo "⚠ hooks/ディレクトリが見つかりません" |
|
fi |
|
|
|
# scriptsディレクトリの内容をコピー |
|
if [ -d "$CLAUDE_DIR/scripts" ]; then |
|
mkdir -p "$TEMP_DIR/scripts" |
|
cp -r "$CLAUDE_DIR/scripts/"* "$TEMP_DIR/scripts/" 2>/dev/null || true |
|
echo "✓ scripts/ ディレクトリ" |
|
else |
|
echo "⚠ scripts/ディレクトリが見つかりません" |
|
fi |
|
|
|
# upload-to-gist.shスクリプト自身をコピー |
|
if [ -f "$CLAUDE_DIR/upload-to-gist.sh" ]; then |
|
cp "$CLAUDE_DIR/upload-to-gist.sh" "$TEMP_DIR/" |
|
echo "✓ upload-to-gist.sh" |
|
else |
|
echo "⚠ upload-to-gist.shが見つかりません" |
|
fi |
|
|
|
# READMEファイルを作成 |
|
cat > "$TEMP_DIR/CLAUDE_CODE_SETTING.md" << 'EOF' |
|
# Claude Code Configuration Files |
|
|
|
This gist contains configuration files for Claude Code CLI tool. |
|
|
|
## Files |
|
|
|
- `settings.json` - Main configuration file with permissions and hooks |
|
- `hooks/` - Directory containing hook scripts |
|
- `scripts/` - Directory containing utility scripts |
|
- `upload-to-gist.sh` - Script to upload configuration files to Gist |
|
|
|
## Usage |
|
|
|
1. Copy these files to your `~/.claude/` directory |
|
2. Make sure script files have execute permissions: `chmod +x ~/.claude/hooks/* ~/.claude/scripts/*` |
|
3. Adjust the settings as needed for your environment |
|
|
|
### Upload Script Usage |
|
|
|
- Create new gist: `./upload-to-gist.sh` |
|
- Update existing gist: `./upload-to-gist.sh <gist_id>` |
|
|
|
Where `<gist_id>` is the ID of an existing gist you want to update. |
|
|
|
## Generated on |
|
|
|
Generated: $(date) |
|
EOF |
|
|
|
echo "Gistにアップロードしています..." |
|
|
|
# カレントディレクトリを一時ディレクトリに変更 |
|
cd "$TEMP_DIR" |
|
|
|
# Gistにアップロード |
|
if command -v gh &> /dev/null; then |
|
if [ -n "$GIST_ID" ]; then |
|
# GitHub CLIを使用してGistを更新 |
|
for file in $(find . -type f); do |
|
gh gist edit "$GIST_ID" --add "$file" |
|
done |
|
echo "✓ Gistが更新されました (ID: $GIST_ID)" |
|
else |
|
# GitHub CLIを使用して新規作成 |
|
find . -type f -exec gh gist create --public -d "claude code setting" {} + |
|
echo "✓ Gistが作成されました" |
|
fi |
|
else |
|
echo "❌ GitHub CLI (gh) がインストールされていません" |
|
echo "以下のコマンドでインストールしてください:" |
|
echo " macOS: brew install gh" |
|
echo " その他: https://cli.github.com/" |
|
echo "" |
|
echo "または、以下のファイルを手動でGistにアップロードしてください:" |
|
echo "ファイル場所: $TEMP_DIR" |
|
ls -la "$TEMP_DIR" |
|
exit 1 |
|
fi |
|
|
|
# 一時ディレクトリをクリーンアップ |
|
cd - > /dev/null |
|
rm -rf "$TEMP_DIR" |
|
|
|
echo "完了!" |