Skip to content

Commit d385fcf

Browse files
takemi-ohamaclaude
andauthored
feat(list): devbase list の対話選択を simple-term-menu で TUI 化 (i29) (#42)
* build(deps): simple-term-menu を追加 (devbase list TUI化の前提) * feat(list): メニュー表示文字列生成 (_build_menu_entries / _color_status) 追加 * feat(list): simple-term-menu による TUI 選択を追加 (fallback 温存) * test(list): 既存 input テストを fallback 経路 (_HAVE_TERMINAL_MENU=False) に固定 * docs(list): TUI 化 (simple-term-menu) を CHANGELOG / README に反映 * docs(issues): i29 list TUI化 実装プランを追加 * fix(list): TUI メニューの色付け既定 OFF と 10件目以降の二重字下げ修正 - _STATUS_COLOR を False に: menu entry に ANSI を埋め込むと simple_term_menu の wcswidth() が -1 を返し表示幅計算/ハイライト消去が 崩れるため、実機検証まで色付けを無効化 (機能 > 装飾) - _build_menu_entries: ショートカット無し行 (10件目以降) の手動 4 スペース 字下げを除去。simple_term_menu はショートカット定義時に全行へ 4 文字 ガターを自前描画するため、二重インデントになっていた - test: 上記に合わせて 10件目の期待値を body 先頭 (字下げ無し) に更新 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent bc2dd30 commit d385fcf

7 files changed

Lines changed: 875 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
## [Unreleased]
66

77
### Added
8+
- **`devbase list` の対話選択を TUI 化**しました。`simple-term-menu` 導入により、
9+
↑↓ の矢印キーで行移動、先頭 9 件は `1``9` の数字キーで即ジャンプ、`/`
10+
名前のインクリメンタル検索ができます。Enter で選択プロジェクトを `up` 起動し、
11+
Esc で中止します。非 TTY(パイプ/CI/リダイレクト)では従来どおりプレーンな
12+
一覧表示にフォールバックし、`simple-term-menu` 未導入環境では番号入力方式に
13+
フォールバックします(macOS / Linux 対応)。
814
- **`devbase project` サブコマンド群を新設**しました (PLAN06)。CWD に依存せずプロジェクト名でコンテナ操作ができます。
915
- `devbase project up/down/ps/logs/scale [name]` で、任意のディレクトリから `$DEVBASE_ROOT/projects/<name>` を対象に操作できます。名前解決はラッパー (`bin/devbase`) が対象ディレクトリへ `cd` してから実行するため、シェル実装の `build` を含む全操作が名前指定で成立します(呼び出し元シェルの作業ディレクトリは変わりません)。存在しない名前はエラーになり候補が提示されます。
1016
- `devbase project list``$DEVBASE_ROOT/projects/` 配下を `NAME` / `PLUGIN` / `STATUS` の一覧表示します。`PLUGIN` 列はシンボリックリンク先から解決するため、PLAN04 の同名衝突 suffix(例 `carmo.takemi`)が付いていても正しいプラグイン名を表示します。**TTY ではデフォルトで対話選択**になり、一覧から番号で選んだプロジェクトを `project up` で起動します。`--no-interactive``--plain` / `-P`)で一覧表示のみに切り替えられ、パイプ・リダイレクト・CI などの非 TTY 環境では自動的に一覧表示へフォールバックします(`--interactive` / `-i` は後方互換として引き続き受け付けます)。

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ devbaseは、Docker Composeを使った再現性の高い開発環境を提供
1515
- **データ永続化**: 名前付きボリュームでコンテナ再起動後もデータを保持
1616
- **スナップショット管理**: `/home/ubuntu` 共通ボリュームの増分バックアップ・復元・世代管理
1717
- **環境変数の自動収集**: `devbase env init`でAWS/Git/GCP認証情報を対話的に設定
18+
- **対話的なプロジェクト選択**: `devbase list` で矢印キー・番号・`/` 検索に対応した TUI メニューから起動対象を選べます
1819

1920
## クイックスタート
2021

0 commit comments

Comments
 (0)