Add interactive configuration to installation scripts

Features:
- Ask user whether to configure CLAUDE.md
- Support both user-level and project-level configuration
- For project-level: prompt for target directory
- Append content (never overwrite existing files)
- Detect existing configuration to avoid duplicates
- Auto-create project constitution section for new files

Scripts updated:
- install.sh (macOS/Linux)
- install.ps1 (Windows PowerShell)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
empty
2026-01-11 18:10:08 +08:00
parent 8dfed0df3f
commit e1f56ae793
2 changed files with 332 additions and 3 deletions

View File

@@ -7,6 +7,42 @@ $RepoUrl = "https://git.let5see.xyz/let5see/skills.git"
$TempDir = Join-Path $env:TEMP "skills-install-$(Get-Random)"
$SkillsDir = Join-Path $env:USERPROFILE ".claude\skills"
$ClaudeMdContent = @"
## Codex
使 `codex-collab` skill Codex CLI
###
```powershell
irm https://git.let5see.xyz/let5see/skills/raw/main/install.ps1 | iex
```
###
****
- Codex
- Codex
-
****
- **Claude Code**
- **Codex**
****
- / Codex
- 使 `sandbox="read-only"`
- Claude Code
- Codex
###
`$env:USERPROFILE\.claude\skills\codex-collab\SKILL.md`
线https://git.let5see.xyz/let5see/skills
---
"@
Write-Host "🚀 正在安装 Claude Code Skills..." -ForegroundColor Green
Write-Host ""
@@ -66,7 +102,7 @@ foreach ($skillDir in $skillDirs) {
Remove-Item -Recurse -Force $TempDir
Write-Host ""
Write-Host "✅ 安装完成!" -ForegroundColor Green
Write-Host " Skills 安装完成!" -ForegroundColor Green
Write-Host ""
Write-Host "已安装 $installedCount 个 skills:" -ForegroundColor Cyan
@@ -74,5 +110,135 @@ Get-ChildItem -Path $SkillsDir -Directory | ForEach-Object {
Write-Host " - $($_.Name)" -ForegroundColor White
}
Write-Host ""
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
Write-Host "📝 是否要配置 Codex 协作规则到 CLAUDE.md" -ForegroundColor Yellow
Write-Host ""
Write-Host "这将帮助 Claude Code 更好地与 Codex 协作。" -ForegroundColor Gray
Write-Host "不会被覆盖现有内容,只会追加配置。" -ForegroundColor Gray
Write-Host ""
Write-Host " [1] 用户级配置 (~/.claude/CLAUDE.md) - 所有项目生效" -ForegroundColor White
Write-Host " [2] 项目级配置 (./CLAUDE.md) - 仅当前项目生效" -ForegroundColor White
Write-Host " [0] 跳过配置" -ForegroundColor White
Write-Host ""
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
$choice = Read-Host "请选择 [0/1/2]"
switch ($choice) {
"1" {
# 用户级配置
$ClaudeMdPath = Join-Path $env:USERPROFILE ".claude\CLAUDE.md"
Write-Host ""
Write-Host "📄 写入用户级配置: $ClaudeMdPath" -ForegroundColor Cyan
# 创建目录(如果不存在)
$claudeDir = Split-Path $ClaudeMdPath -Parent
if (-not (Test-Path $claudeDir)) {
New-Item -ItemType Directory -Path $claudeDir -Force | Out-Null
}
# 检查文件是否已存在
if (Test-Path $ClaudeMdPath) {
# 检查是否已包含配置标记
$content = Get-Content $ClaudeMdPath -Raw
if ($content -match "## Codex 协作配置") {
Write-Host " ⚠ 检测到已存在 Codex 协作配置,跳过写入" -ForegroundColor Yellow
} else {
# 追加配置
Add-Content -Path $ClaudeMdPath -Value "`n$ClaudeMdContent"
Write-Host " ✓ 配置已追加到文件末尾" -ForegroundColor Green
}
} else {
# 创建新文件
$projectConstitution = @"
##
****
1. `CLAUDE.md`
2. ****
3. ""
****
- `CLAUDE.md` >
-
"@
Set-Content -Path $ClaudeMdPath -Value "$projectConstitution`n$ClaudeMdContent"
Write-Host " ✓ 已创建新配置文件" -ForegroundColor Green
}
}
"2" {
# 项目级配置
Write-Host ""
$projectDirInput = Read-Host "请输入项目目录路径 (默认为当前目录)"
$projectDir = if ([string]::IsNullOrWhiteSpace($projectDirInput)) {
Get-Location
} else {
$projectDirInput
}
# 转换为绝对路径
$projectDir = (Resolve-Path $projectDir).Path
$ClaudeMdPath = Join-Path $projectDir "CLAUDE.md"
Write-Host ""
Write-Host "📄 写入项目级配置: $ClaudeMdPath" -ForegroundColor Cyan
# 检查目录是否存在
if (-not (Test-Path $projectDir)) {
Write-Host " ✗ 错误: 目录不存在: $projectDir" -ForegroundColor Red
exit 1
}
# 检查文件是否已存在
if (Test-Path $ClaudeMdPath) {
# 检查是否已包含配置标记
$content = Get-Content $ClaudeMdPath -Raw
if ($content -match "## Codex 协作配置") {
Write-Host " ⚠ 检测到已存在 Codex 协作配置,跳过写入" -ForegroundColor Yellow
} else {
# 追加配置
Add-Content -Path $ClaudeMdPath -Value "`n$ClaudeMdContent"
Write-Host " ✓ 配置已追加到文件末尾" -ForegroundColor Green
}
} else {
# 创建新文件
$projectConstitution = @"
##
****
1. `CLAUDE.md`
2. ****
3. ""
****
- `CLAUDE.md` >
-
"@
Set-Content -Path $ClaudeMdPath -Value "$projectConstitution`n$ClaudeMdContent"
Write-Host " ✓ 已创建新配置文件" -ForegroundColor Green
}
}
"0" {
Write-Host ""
Write-Host "⏭ 跳过配置" -ForegroundColor Yellow
}
default {
Write-Host ""
Write-Host "⚠ 无效选择,跳过配置" -ForegroundColor Yellow
}
}
Write-Host ""
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
Write-Host "🎉 安装完成!" -ForegroundColor Green
Write-Host ""
Write-Host "提示: 重启 Claude Code 以加载新的 skills" -ForegroundColor Yellow
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan