Files
computer-playbook/scripts/install
kevinveenbirkenbachandClaude Opus 4.7 0b5db3e421 fix(install/lint): auto-install npm so markdownlint/eslint installs work on virgin distros
`make install-lint` failed on every test-environment matrix runner
(manjarolinux/base, debian:bookworm, ubuntu:latest, fedora:latest,
quay.io/centos/centos:latest) with:

    npm not found; install Node.js/npm first to get markdownlint-cli2.
    make: *** [Makefile:227: install-lint] Error 1

The two npm-driven installers (`install_markdownlint_with_npm` and
`ensure_eslint`) bailed out as soon as `npm` was missing instead of
following the same auto-install pattern used elsewhere in the
script (e.g. `ensure_command shellcheck` / `shfmt` / `ruff`).

* Add an `npm:<manager>` mapping to `install_command`. pacman /
  apt-get / dnf / yum get the candidate list `npm nodejs`; brew
  gets `node`. `install_package_candidates` returns on the first
  candidate that installs, which covers every matrix distro
  (Arch's `npm` pulls `nodejs` as a hard dep; Debian/Ubuntu's `npm`
  Depends: nodejs; Fedora/EL9+ ship `npm` as a direct package; brew's
  `node` bundles npm).
* `install_markdownlint_with_npm` and `ensure_eslint` now call
  `ensure_command npm` when `npm` is missing, before failing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 16:25:23 +02:00
..
…

Install Scripts

This directory contains scripts that install and bootstrap host-side tooling used by the project.

  • 📦 Install Python, Ansible, and lint dependencies for supported environments
  • 🐧 Install ad-hoc APT packages for CI and workflow jobs via apt.sh
  • 📦 Build and install distro package metadata via package.sh (Arch/Debian/Ubuntu/Fedora)
  • 🏖️ Install OS-level Claude Code sandbox dependencies (bubblewrap, socat) via sandbox.sh — covers Debian, Ubuntu, Fedora, CentOS/RHEL/Rocky/Alma, and Arch; also exposed as make agent-install
  • 🐍 Bootstrap virtual environments and editable project dependencies
  • 🛠️ Keep host preparation separate from lint, build, and test execution

The scope of this folder is installation and bootstrap. Lint execution, build workflows, and test orchestration should stay in their dedicated script directories.