-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Parent Issue: #28
Depends on: Phase 4 issue
目的
セットアップスクリプトのユーザー体験を向上させ、よりフレンドリーで分かりやすいものにする。
実装内容
1. ロゴ/バナーの表示
- ASCII アートのロゴ作成
declare -r DOTFILES_LOGO=' _ _ __ _ _ __| | ___ | |_ / _(_) | ___ ___ / _` |/ _ \| __| |_| | |/ _ \/ __|
| (| | () | || | | | _/_
_,|_/ _|| |||_||___/
'
- [ ] `main()` 関数の開始時に表示
### 2. カラー出力
- [ ] カラーコードの定義
```bash
declare -r COLOR_RESET='\033[0m'
declare -r COLOR_RED='\033[0;31m'
declare -r COLOR_GREEN='\033[0;32m'
declare -r COLOR_YELLOW='\033[0;33m'
declare -r COLOR_BLUE='\033[0;34m'
declare -r COLOR_CYAN='\033[0;36m'
- ログ出力関数の作成
function log_info() { echo -e "${COLOR_BLUE}ℹ${COLOR_RESET} $*" } function log_success() { echo -e "${COLOR_GREEN}✓${COLOR_RESET} $*" } function log_warning() { echo -e "${COLOR_YELLOW}⚠${COLOR_RESET} $*" } function log_error() { echo -e "${COLOR_RED}✗${COLOR_RESET} $*" >&2 }
- 既存の
echoをカラー出力関数に置き換え
3. プログレス表示
- 各処理ステップの進捗表示
log_info "Detecting OS..." log_success "OS detected: macOS (arm64)" log_info "Installing Homebrew..." log_success "Homebrew installed" log_info "Setting up chezmoi..." log_success "Dotfiles applied"
- スピナーアニメーション(オプション)
4. エラーハンドリングと後処理
-
at_exit()関数の実装AT_EXIT="" function at_exit() { AT_EXIT+="${AT_EXIT:+$'\n'}" AT_EXIT+="${*?}" trap "${AT_EXIT}" EXIT }
- 一時ファイルの自動削除
- エラー時のクリーンアップ処理
- トラップハンドラの設定
5. より詳細なエラーメッセージ
- エラー発生箇所の明確化
- 解決方法のヒント表示
- ログファイルへの出力(オプション)
6. シェルの再起動
-
restart_shell_system()関数の実装function restart_shell_system() { log_success "Setup completed!" log_info "Restarting shell..." # chezmoi からシステム情報を取得 local system system=$(chezmoi data | jq -r '.chezmoi.os') # ログインシェルとして再起動 exec "${SHELL}" -l }
- セットアップ完了後の自動再起動(オプション)
7. 対話的な確認(オプション)
- TTY環境での確認プロンプト
function confirm() { if is_ci_or_not_tty; then return 0 fi read -p "$* (y/N): " -n 1 -r echo [[ $REPLY =~ ^[Yy]$ ]] }
実装後のイメージ
_ _ __ _ _
__| | ___ | |_ / _(_) | ___ ___
/ _` |/ _ \| __| |_| | |/ _ \/ __|
| (_| | (_) | |_| _| | | __/\__ \
\__,_|\___/ \__|_| |_|_|\___||___/
ℹ Setting up dotfiles from https://github.com/yellow-seed/dotfiles.git
ℹ Detecting OS...
✓ OS detected: macOS (arm64)
ℹ Installing Homebrew...
✓ Homebrew installed successfully
ℹ Installing packages from Brewfile...
✓ Packages installed
ℹ Setting up chezmoi...
✓ Dotfiles applied
✓ Setup completed!
ℹ Restarting shell...
テスト
- TTY環境でのカラー表示確認
- 非TTY環境でのカラーコード非表示確認
- エラー時のクリーンアップ処理確認
-
at_exit()トラップの動作確認 - ログ出力関数の動作確認
完了条件
- すべてのチェックボックスが完了
- カラー出力が正しく表示される
- エラーハンドリングが適切に機能
- ユーザー体験が向上している
- テストが通過
- PRがマージされている
関連
- Parent: setup.sh を1スクリプトで完結する包括的なセットアップスクリプトに改善 #28
- Depends on: Phase 4
- 全Phaseの完了により setup.sh を1スクリプトで完結する包括的なセットアップスクリプトに改善 #28 がクローズ可能
Metadata
Metadata
Assignees
Labels
No labels