diff --git a/CHANGELOG.md b/CHANGELOG.md index fa9575c..76b8a61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Added a `bat` recipe that installs bat from Fedora and runs `bat cache --build`. - Added VM config validation before Lima template rendering for VM names, users, sizing, code directories, host IPs, and port forwards. - Internal: split `bin/dvm` into a small dispatcher plus sourced shell libraries under diff --git a/README.md b/README.md index 827cec6..e1c9c59 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ Add your own tools with recipes. Use individual bundled tool recipes such as First-pass recipes include: - `baseline`: required setup basics only -- `zsh`, `git`, `helix`, `lazygit`, `starship`, `fzf`, `git-delta`, `just`, +- `zsh`, `git`, `helix`, `lazygit`, `starship`, `fzf`, `bat`, `git-delta`, `just`, `tmux`, `yazi`: optional interactive tools - `agent-user`: `dvm-agent` plus mandatory Bubblewrap sandboxing for AI tools - `codex`, `claude`, `opencode`, `mistral`: hosted AI CLIs inside the VM diff --git a/docs/config.md b/docs/config.md index 0be0be4..4bd4148 100644 --- a/docs/config.md +++ b/docs/config.md @@ -139,6 +139,7 @@ use_app_tools() { use lazygit use starship use fzf + use bat use git-delta use just use tmux diff --git a/docs/recipes.md b/docs/recipes.md index a42114c..e49651a 100644 --- a/docs/recipes.md +++ b/docs/recipes.md @@ -53,9 +53,9 @@ recipes or project-specific VM configs. VMs only when the selected service recipes install every dependency they need. Interactive tools are split into one recipe per tool: `zsh`, `git`, `helix`, -`lazygit`, `starship`, `fzf`, `git-delta`, `just`, `tmux`, and `yazi`. `zsh` installs -zsh and sets it as the guest user's default login shell with `usermod --shell`. The -DNF-backed recipes install from Fedora. +`lazygit`, `starship`, `fzf`, `bat`, `git-delta`, `just`, `tmux`, and `yazi`. `zsh` +installs zsh and sets it as the guest user's default login shell with `usermod +--shell`. The DNF-backed recipes install from Fedora. The upstream-backed recipes try Fedora first and otherwise use pinned official release assets with sha256 verification. @@ -99,6 +99,7 @@ use helix use lazygit use starship use fzf +use bat use git-delta use just use tmux @@ -115,6 +116,7 @@ use_app_tools() { use lazygit use starship use fzf + use bat use git-delta use just use tmux diff --git a/share/dvm/recipes/bat.sh b/share/dvm/recipes/bat.sh new file mode 100755 index 0000000..1d50ecb --- /dev/null +++ b/share/dvm/recipes/bat.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +sudo dnf5 install -y bat +bat cache --build diff --git a/tests/smoke.sh b/tests/smoke.sh index c0a5425..e135c07 100755 --- a/tests/smoke.sh +++ b/tests/smoke.sh @@ -24,6 +24,7 @@ use_app_tools() { use lazygit use starship use fzf + use bat use git-delta use just use tmux @@ -189,7 +190,7 @@ grep -Fq 'missing VM template: missing-template' "$TMP/init-bad.err" rm -f "$TMP/config/vms/newapp.sh" "$TMP/config/vms/llama.sh" "$ROOT/bin/dvm" apply app 2>"$TMP/apply.err" -grep -Fq 'dvm: applying recipes for app: baseline zsh git helix lazygit starship fzf git-delta just tmux yazi node agent-user codex claude chezmoi' "$TMP/apply.err" +grep -Fq 'dvm: applying recipes for app: baseline zsh git helix lazygit starship fzf bat git-delta just tmux yazi node agent-user codex claude chezmoi' "$TMP/apply.err" grep -Fq 'create dvm-app' "$TMP/state/log" grep -Fq 'start dvm-app' "$TMP/state/log" grep -Fq 'DVM_CODE_DIR=~/code/app' "$TMP/state/log" @@ -197,6 +198,8 @@ grep -Fq 'dvm hostname' "$TMP/state/guest.sh" grep -Fq 'hostnamectl set-hostname "$DVM_NAME"' "$TMP/state/guest.sh" grep -Fq 'dvm recipe: zsh' "$TMP/state/guest.sh" grep -Fq 'usermod --shell "$zsh_path" "$(id -un)"' "$TMP/state/guest.sh" +grep -Fq 'dvm recipe: bat' "$TMP/state/guest.sh" +grep -Fq 'bat cache --build' "$TMP/state/guest.sh" grep -Fq 'dvm recipe: yazi' "$TMP/state/guest.sh" grep -Fq 'dvm recipe: agent-user' "$TMP/state/guest.sh" grep -Fq 'dnf5 install -y acl bubblewrap shadow-utils sudo' "$TMP/state/guest.sh"