Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ cask_args appdir: "/Applications"
# === 非公式 tap ===
# Homebrew 公式に無い macOS アプリ用の tap
# cask の追加・更新は dotfiles 側の pkg-add / cask-update skill で行う
tap 'dicklesworthstone/tap'
tap 'u-ichi/tap'
tap 'manaflow-ai/cmux'
tap 'terraform-linters/tap'
Expand All @@ -21,6 +22,8 @@ cask 'antigravity-cli'
brew 'bash'
brew 'bun'
brew 'cargo-nextest'
brew 'ccusage'
brew 'dicklesworthstone/tap/cass'
brew 'direnv'
brew 'docker-compose'
brew 'fish'
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ Fish 設定と Fisher プラグインだけを復元する場合:
./install.sh fish
```

Brewfile に登録した CLI だけを導入する場合:

```bash
./install.sh brew dicklesworthstone/tap/cass ccusage
```

日次メンテナンスだけを同期し直す場合:

```bash
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ dotfiles 側では扱わない。詳細は claude.codex の `install.sh` と `do

| スクリプト | 役割 |
|-----------|------|
| `install.sh` | 初回セットアップと日常更新の単一エントリポイント。Brewfile 適用 / 更新、設定ファイルコピー、Git ローカル設定の対話的入力、AWS 設定の再展開、Claude Code / Herdr / Herdr plugin / mkcert / Fisher / Terraform / npm / Backlog.md / Playwright browser binary / Python tools の同期、macOS defaults と Spotlight 除外の適用、日次メンテナンス LaunchAgent 登録を行う。第 1 引数で MODE (`antigravity` / `orca` / `herdr` / `gws` / `python` / `npm` / `backlog` / `playwright` / `vscode` / `fish` / `docker` / `maintenance` / `spotlight`) を指定するとそのモジュールだけ再実行する |
| `install.sh` | 初回セットアップと日常更新の単一エントリポイント。Brewfile 適用 / 更新、設定ファイルコピー、Git ローカル設定の対話的入力、AWS 設定の再展開、Claude Code / Herdr / Herdr plugin / mkcert / Fisher / Terraform / npm / Backlog.md / Playwright browser binary / Python tools の同期、macOS defaults と Spotlight 除外の適用、日次メンテナンス LaunchAgent 登録を行う。第 1 引数で MODE (`brew` / `antigravity` / `orca` / `herdr` / `gws` / `python` / `npm` / `backlog` / `playwright` / `vscode` / `fish` / `docker` / `maintenance` / `spotlight`) を指定するとそのモジュールだけ再実行する |
| `lib/backlog.sh` | Backlog.md の公式 `origin` を確認し、通常は `origin/main` を取得してビルドする。managed manifest がある場合は指定した base commit を一時展開し、管理済み patch を順番に適用してビルドする |
| `lib/antigravity.sh` | Brewfile から Antigravity CLI だけを導入し、管理する設定項目を利用者の設定へ反映する |
| `lib/herdr.sh` | Herdr 本体の存在確認、Herdrfile の plugin 同期、Herdr 専用 mode の設定コピーを行う。版不一致は非破壊の警告として扱い、`all` では後続の dotfiles 同期を継続する |
Expand Down
32 changes: 31 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@ update_npm_globals() {
fi
}

# Brewfileに登録した非公式formulaだけを信頼対象にする。
trust_brewfile_formulas() {
local formula
while IFS= read -r formula; do
brew trust --formula "$formula"
done < <(sed -n "s/^brew '\([^']*\/[^']*\/[^']*\)'$/\1/p" "$1")
}

sync_homebrew() {
if ! command -v brew &>/dev/null; then
echo "エラー: Homebrew がインストールされていません"
Expand All @@ -52,6 +60,7 @@ sync_homebrew() {
# `brew trust` は idempotent (既に trusted なら何もしない)。
brew trust --tap u-ichi/tap 2>/dev/null || true

trust_brewfile_formulas "$SCRIPT_DIR/Brewfile"
brew bundle --file="$SCRIPT_DIR/Brewfile"
brew cleanup
echo ""
Expand Down Expand Up @@ -173,6 +182,27 @@ restore_fisher_plugins() {
echo ""
}

# 指定したformulaだけをBrewfileから適用する。
if [ "$MODE" = "brew" ]; then
shift
if [ "$#" -eq 0 ]; then
echo "使い方: $0 brew <Brewfileに登録したformula>..." >&2
exit 1
fi
mkdir -p "$SCRIPT_DIR/tmp"
selected_brewfile="$(mktemp "$SCRIPT_DIR/tmp/brew-selected.XXXXXX")"
trap 'rm -f "$selected_brewfile"' EXIT
for package in "$@"; do
if ! grep -Fx "brew '$package'" "$SCRIPT_DIR/Brewfile" >> "$selected_brewfile"; then
echo "エラー: Brewfile に $package が登録されていません" >&2
exit 1
fi
done
trust_brewfile_formulas "$selected_brewfile"
brew bundle --file="$selected_brewfile" --no-upgrade
exit 0
fi

if [ "$MODE" = "antigravity" ]; then
ensure_antigravity
sync_antigravity_settings
Expand Down Expand Up @@ -279,7 +309,7 @@ fi

if [ "$MODE" != "all" ]; then
echo "エラー: 未知の MODE です: $MODE"
echo "利用可能: all, antigravity, orca, herdr, gws, python, npm, backlog, playwright, vscode, fish, karabiner, docker, maintenance, spotlight"
echo "利用可能: all, brew, antigravity, orca, herdr, gws, python, npm, backlog, playwright, vscode, fish, karabiner, docker, maintenance, spotlight"
exit 1
fi

Expand Down