Files
computer-playbook/utils/cleanup
kevinveenbirkenbachandClaude Fable 5 40e553069d refactor(structure): nest prefix-grouped sibling files into subfolders
Move files that share a delimiter-bounded name prefix within a folder (threshold 2) into a subfolder named after the prefix, dropping the prefix from the filename. Covers plugins/filter (docker, generate, has, merge, get/all), env handler subpackages, utils/roles/entity, utils/tests/swarm/write, role SQL/scripts/templates, keycloak/mailu task-includes, shared tasks/utils/load, and CI scripts. Update every import, query_file/script/include_tasks/src/lookup target, compose bind mount, and python -m path to the new locations.

Extend the prefix-grouped-files lint to threshold 2 with dir-level .nocheck and file-head nocheck opt-outs, and skip groups whose shortest member's stem equals the shared prefix. Keep flat only where a loader forbids nesting: WordPress mu-plugins and the docs/requirements namespace. Ansible filter discovery is recursive, so nested filters stay Jinja-resolvable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 20:00:03 +02:00
..
…

Cleanup Utilities 🧹

This directory contains helpers that mutate persistent on-host state during purge flows.

Scope 📋

Modules under utils/cleanup/ MUST limit themselves to wiping or normalising state that survives compose and volume purges (for example secrets, token stores, cached registry data) so the surrounding entity-keyed purge primitives stay focused on stack-level cleanup.

Modules under utils/cleanup/ MUST NOT take over responsibilities that belong to the entity-keyed purge primitives in scripts/container/purge/entity/ (database drop, compose down, filesystem removal).

Usage 🛠️

Every module here SHOULD expose a callable function for in-process use and a __main__ shim so the same code path is reachable from shell orchestrators via python -m utils.cleanup.<module>.

The host-side purge flow invokes these modules through the app-keyed orchestrator apps.sh.