Skip to content

Tidy install scripts, standardize CI Dockerfiles, add linting#23

Merged
RWejlgaard merged 1 commit into
masterfrom
fix/repo-cleanup
Jun 17, 2026
Merged

Tidy install scripts, standardize CI Dockerfiles, add linting#23
RWejlgaard merged 1 commit into
masterfrom
fix/repo-cleanup

Conversation

@RWejlgaard

Copy link
Copy Markdown
Owner

Cleanup pass over the install path and CI. No behavior change to the configs themselves beyond minor idiom fixes.

Test Dockerfiles

  • Use COPY . /workspace in all four. Three of them used COPY ../., which references a path above the build context and only passed because buildkit normalizes it — plain docker build would reject it.
  • Ubuntu now does apt-get update && apt-get install -y instead of the non-standard apt install --update (only valid on apt ≥2.4, and apt warns it has no stable scripting interface).
  • Each image now verifies the install actually landed (config symlinks exist + gitissue function loads) instead of only checking that make exited 0.
  • Arch no longer needs to install which.

Install scripts

  • command -v instead of which in 01-install-packages.sh and 07-last-touches.sh — drops a hidden dependency that isn't present by default everywhere.
  • 07-last-touches.sh gets set -e to match the other scripts.

CI linting

  • New lint job runs shellcheck over the shell scripts and fish --no-execute over the fish files.
  • .shellcheckrc documents and silences the intentional idioms (the cond && a || b colour picker, interactive read prompts, printf with unicode), so the gate surfaces real issues.

Minor

  • gitissue uses git checkout -b instead of git branch + git checkout.
  • Fish files use idiomatic set -gx instead of the bash-compat export shim.

Validation

Ran shellcheck clean locally, and built the Alpine and Ubuntu images end-to-end (full make + the new verification step) — both pass.

- Standardize test Dockerfiles: use `COPY .` everywhere (the `COPY ../.`
  variants pointed outside the build context and only passed by luck),
  and switch Ubuntu to `apt-get update && apt-get install` instead of the
  non-standard `apt install --update`.
- Each Dockerfile now asserts the install actually landed (symlinks +
  gitissue function) rather than just that `make` exited 0.
- Drop the `which` dependency: use `command -v` in the install scripts,
  which also lets the Arch test image stop installing `which`.
- Add `set -e` to 07-last-touches.sh to match the other scripts.
- Add a CI lint job (shellcheck + fish --no-execute) with a .shellcheckrc
  documenting the intentional idioms.
- Minor: gitissue uses `git checkout -b`; fish files use idiomatic
  `set -gx` instead of the export shim.
@RWejlgaard RWejlgaard merged commit 9694976 into master Jun 17, 2026
5 checks passed
@RWejlgaard RWejlgaard deleted the fix/repo-cleanup branch June 17, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant