testsAndMisc/linux_configuration/scripts/single_use/features
Krzysztof kuhy Rudnicki bca70b67b5 Shell coverage: convert the ratchet to a measured 100% bar
The gate was a presence check -- 'a run_all.sh exists beside this lib' --
which an empty suite that asserts nothing satisfies. It now measures.

100% is reachable with no suppressions and no production source changes:
run the suite inside a user+mount namespace and the sudo-writes, systemd
units and nftables rules execute for real against a throwaway /etc.

- meta/scripts/shell_coverage_jail.sh: the runner, promoted out of a
  session scratchpad. Two fixes it needed on the way: bind targets mirror
  the real directory tree (an empty bind makes writes fail with ENOENT,
  which reads as unreachable code), and sudo gets a pass-through stub
  because real sudo cannot setresuid inside a userns.
- It fingerprints git status before and after and fails the run if a
  write escapes the jail. Verified with a deliberate escapee.
- dot_resolver_install.sh: 39/39 = 100.00%, 28 assertions. Picked by
  scoring every allowlisted lib on root ops, system writes and
  destructive calls -- it scored highest in the repo. Allowlist 106 -> 105.
- jscpd was already over its own threshold at 2.45% and would have
  rejected every commit staging a .sh file. Excluding vendored .venv/
  shell alone gives 1.67%; also excluding lib/tests/ gives 1.47%.

The gate is deliberately NOT wired into the hook chain yet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbD4nco3EgL1UFoZKmKsLE
2026-08-22 11:20:58 +02:00
..
lib Shell coverage: convert the ratchet to a measured 100% bar 2026-08-22 11:20:58 +02:00
systemd Extract dufs cloud (web + app + scripts) to github.com/kuhyx/dufs-cloud 2026-07-12 18:38:37 +02:00
control_from_mobile.sh Split two more linux_configuration scripts; revert a third 2026-08-16 18:44:18 +02:00
install_unreal_mcp_kvick.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
install_unreal_mcp.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
keepass_consolidate.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
keepass_sync.sh Fix the 11 shellcheck findings that kept CI red since b83ce5d 2026-08-04 20:55:02 +02:00
keepass-open.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
migrate_github_to_gitea.sh Add self-hosted Gitea deployment, mirroring all GitHub repos publicly 2026-07-04 07:45:00 +02:00
raspberry_pi_flash_sd.sh Split the Pi flasher and the boot-repair test harness 2026-08-16 20:21:44 +02:00
raspberry_pi_nextcloud.sh Split three more linux_configuration giants 2026-08-16 19:43:55 +02:00
setup_activitywatch.sh Split three more scripts; make the verifier catch heredoc cuts 2026-08-16 20:16:08 +02:00
setup_dns_blocker.sh Split setup_dns_blocker.sh, a live systemd unit target 2026-08-16 21:31:03 +02:00
setup_dot_resolver.sh Split seven more linux_configuration scripts 2026-08-16 18:56:05 +02:00
setup_dwm.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
setup_gitea.sh Split three near-miss linux_configuration scripts 2026-08-16 18:38:43 +02:00
setup_kcd2_dice_solver.sh Split three large linux_configuration scripts, defer a fourth 2026-08-16 19:06:16 +02:00
setup_keepass_sync.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
setup_local_llm.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
setup_nextcloud_raspberry.sh Split setup_nextcloud_raspberry.sh 1383 -> 231 2026-08-16 19:37:07 +02:00
setup_personal_website.sh Split three more linux_configuration feature and fix scripts 2026-08-16 18:48:01 +02:00
setup_phone_wireguard.sh Park phone DNS filtering: Private DNS fails closed, so the PC cannot host it 2026-08-05 10:05:16 +02:00
setup_searxng.sh Split setup_searxng.sh 912 -> 184 2026-08-16 19:11:40 +02:00
setup_syncyomi_guard.sh syncyomi_guard: refuse a collapsed payload as the new good copy 2026-08-10 15:33:18 +02:00
setup_syncyomi.sh Split three more linux_configuration feature and fix scripts 2026-08-16 18:48:01 +02:00
setup_wireguard_ssh.sh Split three more scripts; make the verifier catch heredoc cuts 2026-08-16 20:16:08 +02:00