feat: migrate ssh menu to Bun/TypeScript

Replace the Bash implementation and jq/yq dependency chain with a Bun-based TypeScript script, add Bun/TypeScript project files, and update docs and sample config notes to match the new CLI and behavior.
This commit is contained in:
2026-06-04 01:45:53 +02:00
parent ba79cedcb1
commit ce563186cb
7 changed files with 315 additions and 203 deletions
+7 -4
View File
@@ -1,13 +1,16 @@
# Project Memory
- Project: mtm-ssh-menu
- Type: Bash SSH target picker using `fzf` and YAML config.
- Type: TypeScript/Bun SSH target picker with YAML config.
- Main entry point: `mtm-ssh-menu`
- Configuration: `~/.config/mtm-ssh-menu/global.yaml` and `hosts/*.yaml` by default.
- Dependencies: `bash`, `ssh`, `fzf`, `jq`, `yq`.
- Dependencies: `bun`, `ssh`, `fzf`.
- Sample config is stored in `sample-config/` and mirrors current script behavior.
- Sample `global.yaml` includes `office`, `dev`, and `backup` jump hosts.
- Documentation language: English.
- Current task focus: keep README and memory aligned with the working script and sample configuration.
- Sample host files currently use numbered names: `01_prod.yaml`, `02_staging.yaml`, `03_dev.yaml`.
- Known follow-up improvements:
- Each group should have default values.
- `sample-config/hosts/01_prod.yaml` contains `web-1` and `db-1`; `02_staging.yaml` contains `app-1` and `worker-1`; `03_dev.yaml` contains `api-1` and `web-1`.
- CLI usage currently exposes `-c/--config-dir` and `-k/--known-hosts` (optional user) as documented in the script.
- `-k` without a user defaults known-host entries to `root`.
- Host-specific `options` override global `default_options`; `ssh_options` in sample config is currently unused.