diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d565f8a..543bf46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: ) out.append({ "id": flow["id"], - "install": spec["install"], + "install": "src/" + spec["install"], "build": spec.get("build", "") or "", "run": spec["run"], "expected": spec["expected"], diff --git a/src/manifest.yml b/src/manifest.yml index 083142b..a5c70e8 100644 --- a/src/manifest.yml +++ b/src/manifest.yml @@ -56,7 +56,9 @@ # shows up in the CmdPal extension and in the CI summary # under a "manual" bucket. # windows: (object, required if "windows" in os) -# install: path to PowerShell install shim (CI runs this) +# install: path to PowerShell install shim +# CI runs this from the `src/` directory, while CmdPal +# assumes the extension's root is the repo root. # configuration: (optional) path to winget DSC configuration.winget the # extension applies via `winget configure`. Defaults to # "/configuration.winget" when omitted. @@ -77,8 +79,8 @@ flows: onboardingUrl: https://www.typescriptlang.org/download os: [windows] windows: - install: src/Workloads/typescript/install.ps1 - configuration: src/Workloads/typescript/configuration.winget + install: Workloads/typescript/install.ps1 + configuration: Workloads/typescript/configuration.winget build: tsc src/tests/typescript/hello.ts run: node src/tests/typescript/hello.js expected: src/tests/typescript/expected.txt @@ -93,8 +95,8 @@ flows: onboardingUrl: https://www.php.net/manual/en/install.windows.php os: [windows] windows: - install: src/Workloads/php/install.ps1 - configuration: src/Workloads/php/configuration.winget + install: Workloads/php/install.ps1 + configuration: Workloads/php/configuration.winget build: "" run: php src/tests/php/hello.php expected: src/tests/php/expected.txt diff --git a/src/wsl-comfort/readme.md b/src/wsl-comfort/readme.md index 500cb82..262d2f5 100644 --- a/src/wsl-comfort/readme.md +++ b/src/wsl-comfort/readme.md @@ -35,7 +35,6 @@ The Windows half (`install.ps1`) handles WSL, the distro, the font, and the term ## Prerequisites - Windows 11 with **Windows Terminal** (`wt.exe`) installed and on PATH. The installer hard-fails if it can't find `wt.exe`. -- `winget` available (used only for the Nerd Font; the rest of the flow tolerates its absence). - Internet access for the WSL distro download, Homebrew, starship, and apt. - The bootstrap requires Ubuntu (any supported LTS). Other distros are rejected at preflight. @@ -87,7 +86,7 @@ Picks `Ubuntu` (latest LTS) as the distro and forwards `--non-interactive` to th - **Clipboard / `open` shims** in `~/bin`: `pbcopy`, `pbpaste`, `open`, `xdg-open` — bridged to `clip.exe`, PowerShell `Get-Clipboard`, and `cmd /c start`. - **Managed dotfile blocks** in `~/.zprofile` + `~/.zshrc` (or `~/.profile` + `~/.bashrc`) for PATH, brew shellenv, prompt init, aliases, and (zsh) keybindings. - **Git defaults**: `init.defaultBranch=main`, `pull.rebase=false`, `core.autocrlf=input`. -- **JetBrainsMono Nerd Font** via winget. +- **Cascadia Code Nerd Fonts** both mono and not. - **A Windows Terminal profile fragment** named `Comfort Shell - `, with a custom Catppuccin-ish dark scheme, the sunglasses icon, and `wsl.exe -d ` as the command line. --- @@ -112,7 +111,7 @@ The script runs five labeled steps and updates the console title with the curren | 1. Ensuring WSL platform | `wsl.exe --status` probe. If WSL is missing, runs `wsl.exe --install --no-distribution` and exits via reboot. | Registers a RunOnce auto-resume so the script picks up where it left off after the reboot. | | 2. Choosing Ubuntu distro | Lists installed `Ubuntu*` distros from `wsl -l -q`. If none, offers the 4 supported LTS lines. | `Install-NewDistro` retries up to 3 times (5s → 15s backoff) and gives actionable hints on failure (DNS, proxy, VPN). | | 3. Running Comfort Shell bootstrap | Stages `comfort-shell-bootstrap.sh` to `%TEMP%`, copies it into the distro's `$HOME`, strips CRLFs, makes it executable, runs it. | Uses `Invoke-NativeConsole` so the child sees a real TTY (needed for `/dev/tty` prompts in the bootstrap). | -| 4. Installing JetBrainsMono Nerd Font | `winget install --id DEVCOM.JetBrainsMonoNerdFont --silent`. | Non-fatal: a missing winget or a "already installed" exit code is logged and skipped. | +| 4. Installing Cascadia Code Nerd Fonts | Downloads fonts from GitHub release; extracts and registers them. | Detects "already installed" and skips if so. | | 5. Installing Windows Terminal profile | Writes a JSON fragment under `%LOCALAPPDATA%\Microsoft\Windows Terminal\Fragments\ComfortShell\comfort-shell-.fragment.json`. | Deterministic per-distro GUID (MD5 of `comfort-shell:`) so re-runs update in place and multiple distros coexist. Touches `settings.json` mtime to nudge WT's hot-reload. | ### Parameters