Skip to content

Instantly share code, notes, and snippets.

@yoshiko-pg
Last active March 20, 2025 09:04
Show Gist options
  • Save yoshiko-pg/6391ac9d9524dddafabcb846e19d19ce to your computer and use it in GitHub Desktop.
Save yoshiko-pg/6391ac9d9524dddafabcb846e19d19ce to your computer and use it in GitHub Desktop.
setup my mac
#!/bin/bash
set -e
# --- 引数のチェック ---
if [ "$#" -ne 2 ]; then
echo "Usage: $0 [work|personal] [dotfiles_repo_url]"
exit 1
fi
MODE="$1"
DOTFILES_REPO="$2"
if [[ "$DOTFILES_REPO" != *"://"* && "$DOTFILES_REPO" != git@* ]]; then
DOTFILES_REPO="[email protected]:${DOTFILES_REPO}.git"
fi
echo "セットアップを開始します。モード: $MODE, dotfilesリポジトリ: $DOTFILES_REPO"
# --- 1. Homebrew のチェック&インストール ---
if ! command -v brew >/dev/null 2>&1; then
echo "Homebrew が見つかりません。インストールします..."
echo -e "\033[33mHomebrewのインストールではパスワード入力が求められる場合があります。\033[0m"
echo -e "\033[33mプロンプトが表示されたら、パスワードを入力してください。\033[0m"
# TTYが必要なインストールスクリプトを実行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Homebrewがインストールされたか再確認
if ! command -v brew >/dev/null 2>&1; then
# PATHに追加する可能性のある場所を試す
eval "$(/opt/homebrew/bin/brew shellenv 2>/dev/null || true)"
eval "$(/usr/local/bin/brew shellenv 2>/dev/null || true)"
# それでも見つからない場合
if ! command -v brew >/dev/null 2>&1; then
echo -e "\033[31mHomebrew のインストールに失敗しました。\033[0m"
echo "以下のコマンドを手動で実行してから、もう一度試してください:"
echo "/bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
exit 1
fi
fi
echo -e "\033[32mHomebrew のインストールに成功しました。\033[0m"
else
echo "Homebrew は既にインストール済みです。"
fi
# --- 2. GitHub CLI (gh) と chezmoi のインストール ---
if ! command -v gh >/dev/null 2>&1; then
echo "GitHub CLI (gh) をインストールします..."
brew install gh
else
echo "GitHub CLI (gh) は既にインストール済みです。"
fi
if ! command -v chezmoi >/dev/null 2>&1; then
echo "chezmoi をインストールします..."
brew install chezmoi
else
echo "chezmoi は既にインストール済みです。"
fi
# --- 3. GitHub CLI によるログイン ---
echo "GitHub CLI を使ってログインします(ブラウザ認証)..."
gh auth login --hostname github.com --web
# --- 5. SSH 接続の確認 ---
echo "GitHub への SSH 接続を確認します..."
ssh -T [email protected] || echo "初回接続の場合、ホスト確認メッセージが表示されることがあります。"
# --- 6. chezmoi で dotfiles リポジトリを初期化 ---
echo "chezmoi を使って dotfiles リポジトリ ($DOTFILES_REPO) を初期化します..."
chezmoi init "$DOTFILES_REPO"
# --- 7. chezmoi の設定ファイル(chezmoi.toml)の更新 ---
CONFIG_DIR="${HOME}/.config/chezmoi"
CONFIG_FILE="${CONFIG_DIR}/chezmoi.toml"
mkdir -p "${CONFIG_DIR}"
echo "chezmoi のモードを ${MODE} に設定します。(${CONFIG_FILE})"
cat <<EOF > "${CONFIG_FILE}"
[data]
mode = "${MODE}"
EOF
# --- 8. chezmoi apply を実行して設定を反映 ---
echo "chezmoi apply を実行して設定を反映します..."
chezmoi apply
echo "✅ セットアップ完了!ターミナルを再起動してください。"
# --- 10. YouTube Music のページを開く (手動でPWAインストール) ---
echo "🌐 Google Chrome で YouTube Music を開きます。PWAとしてインストールしてください"
open -a "Google Chrome" "https://music.youtube.com/"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment