diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-02 17:11:05 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-02 17:11:05 -0400 |
| commit | 24a2098dd2adf7bcfe4272c66cf105cb0234703f (patch) | |
| tree | 2ed73940e6203187a009bb0d50b421c23e9dda46 | |
| parent | 6b7791ccf8195247649914a7ce3cbda9bbcdaf06 (diff) | |
| download | archsetup-24a2098dd2adf7bcfe4272c66cf105cb0234703f.tar.gz archsetup-24a2098dd2adf7bcfe4272c66cf105cb0234703f.zip | |
feat(tooling): provision eask via user-local npm install
chime and linear-emacs shell out to eask but nothing installed it. The block runs npm install -g --prefix ~/.local as the user after the node tooling, so eask lands on PATH without root. A stowed .npmrc pins the same prefix in dotfiles. VM asserts both.
| -rwxr-xr-x | archsetup | 8 | ||||
| -rw-r--r-- | scripts/testing/tests/test_packages.py | 10 | ||||
| -rw-r--r-- | todo.org | 4 |
3 files changed, 21 insertions, 1 deletions
@@ -2410,6 +2410,14 @@ install_programming_languages() { pacman_install npm # Node-js package manager aur_install nvm # Node-js version manager + # Eask (Emacs package build/test CLI) — chime and linear-emacs shell out to + # it. Global npm install as the user with a ~/.local prefix so eask lands + # on PATH at ~/.local/bin/eask without root (the stowed ~/.npmrc pins the + # same prefix for future npm -g installs). + action="installing eask via npm" && display "task" "$action" + (sudo -u "$username" bash -c 'npm install -g --prefix "$HOME/.local" @emacs-eask/cli' >> "$logfile" 2>&1) || \ + error_warn "$action" "$?" + # AI coding assistant (native install to ~/.local/bin), opt-out via # INSTALL_CLAUDE_CODE=no / --no-claude-code. Gated because it's curl|sh from # a third party and not every user wants AI tooling. diff --git a/scripts/testing/tests/test_packages.py b/scripts/testing/tests/test_packages.py index f0d8ff2..74737e2 100644 --- a/scripts/testing/tests/test_packages.py +++ b/scripts/testing/tests/test_packages.py @@ -74,3 +74,13 @@ def test_blueman_not_installed(host): # blueman was retired 2026-07-02 in favor of the dotfiles bt panel; # its reappearance means the desktop_environment step regressed. assert not host.package("blueman").is_installed + + +@pytest.mark.attribution("archsetup") +def test_eask_installed_user_local(host, home): + # Installed via npm -g --prefix ~/.local as the user; chime and + # linear-emacs shell out to it. + f = host.file("%s/.local/bin/eask" % home) + assert f.exists, "eask missing from ~/.local/bin" + npmrc = host.file("%s/.npmrc" % home) + assert npmrc.exists, ".npmrc (user npm prefix) not stowed" @@ -208,7 +208,9 @@ CLOSED: [2026-07-02 Thu] :END: Decided by Craig 2026-07-02, ahead of the scheduled checkpoint: remove pocketbook altogether. Executed same day — pip package uninstalled (user site clean), running instance killed, launcher gone, =pocketbook/= tree removed from the repo, Super+P rebound to toggle-touchpad (P for Pointers; Super+Shift+I unbound, waybar tooltip hint updated — dotfiles a750cb4). The org-capture popup remains the quick-notes surface. -** TODO [#B] Provision Eask in archsetup :tooling:eask: +** DONE [#B] Provision Eask in archsetup :tooling:eask: +CLOSED: [2026-07-02 Thu] +Shipped 2026-07-02 (speedrun): npm global install block added after the nvm line — runs as $username with --prefix $HOME/.local, display/error_warn wrapped, output to $logfile, matching the claude-code block's shape. The npmrc decision went yes: dotfiles common/.npmrc pins prefix=${HOME}/.local (stowed; hand-linked live, npm config get prefix confirms ~/.local — dotfiles 01627cc). VM assertion added: ~/.local/bin/eask present + ~/.npmrc stowed. Live smoke: eask 0.12.9 on PATH. Full acceptance (fresh-install chime make setup/test) rides the next VM pass. :PROPERTIES: :LAST_REVIEWED: 2026-05-26 :END: |
