forked from heavy-duty/rig
An empty, comments-only or whitespace-only users file is not a parse error, so it walked straight through the requirement #51 built: pre-flight passed, apply converged nothing, and the box came up root-only — the exact outcome --no-users exists to make explicit, reached by the flag added to guarantee the opposite. `--users ./empty` and `--no-users` produced the identical box and only one of them said so. Catch the zero-user parse in bootstrap's pre-flight, where the file is already parsed for validation and before apt, the hostname change, or a spent pre-auth key. The refusal names --no-users: the root-only box is reachable, it just has to be asked for out loud. Deliberately narrow. This is bootstrap's contract, not the parser's and not apply's: zero users is a legal file, and a standalone `rig users apply` against an emptied file is a real de-provisioning operation that must stay possible. Negative-grep tests pin both. Closes #57 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| lib | ||
| bootstrap-tenant.sh | ||
| bootstrap.sh | ||
| coolify-backup-install.sh | ||
| coolify-install.sh | ||
| db.sh | ||
| runner-install.sh | ||
| runner-remove.sh | ||
| runner-repoint.sh | ||
| runner-status.sh | ||
| users-apply.sh | ||
| users-close-root.sh | ||
| users-status.sh | ||