mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 21:26:44 +00:00
Module moves (with imports, paths, argv literals, scripts, docs, and
parents[N] formulas updated in lockstep):
- cli/deploy -> cli/administration/deploy
- cli/validate/inventory -> cli/administration/inventory/validate
- cli/vault -> cli/administration/secrets/vault
- cli/administration/inventory/encrypt -> cli/administration/secrets/seal
- cli/mirror -> cli/contributing/mirror
The new cli/administration/secrets cluster collocates the whole-file
ansible-vault wrapper next to the inventory-aware per-field sealer.
The user-facing CLI subcommand paths follow the package layout, e.g.
"infinito administration deploy dedicated <inv>" and
"infinito administration inventory validate <inv>".
Help system redesign in cli/core/{discovery,help,app}.py:
- Discovery now distinguishes runnable commands (directories with
__main__.py) from category folders (directories that only group
further commands). Empty support packages are filtered out.
- Each category folder MAY carry a README.md; its H1 heading is used
as the title and its first paragraph as the one-line description in
the help output.
- "infinito" / "infinito --help" prints only the top-level entries
(one level deep). "infinito <category>" navigates into a folder and
shows its sub-folders and commands one level deep, with the README
title as the page heading and the invocation as a dim subtitle.
- New "--tree [N]" flag walks the tree under the (optional) path
prefix recursively. N caps the depth (1-based); omit N for an
unbounded walk. The output uses Unicode tree connectors, an emoji
per entry (folder for categories, gear for commands), a globally
aligned description column, and multi-line wrapped descriptions
with tree-continuity bars on continuation lines.
- Category and command listings use the full invocation
("infinito meta callorder") rather than the bare leaf name, so the
output is copy-pasteable.
Convention doc + 17 CLI READMEs:
- New docs/contributing/artefact/files/cli/readme_md.md describes the
H1+paragraph layout the help system reads, and how it differs from
role/docs READMEs.
- README.md added for cli/{administration, build, contributing, meta}
and their immediate sub-folders, plus cli/meta/roles/applications
and its resolution sub-folder. Each follows the "title with trailing
emoji + single descriptive paragraph" convention.
Mirror resolver/sync description strings (the help system reads them
from argparse --help output) added so they no longer surface as
"options:" in the global index. cli/mirror/cleanup already had a
description and is unchanged.
Fixes uncovered by the move:
- import unittest.mock added to four dedicated-deploy tests so
unittest.mock.patch resolves under stdlib unittest discovery
(Python 3.13 no longer surfaces unittest.mock through "import
unittest" alone).
- parents[N] index in the new
cli/administration/inventory/validate/__init__.py corrected from
3 to 4 to match the deeper layout.
- test_paths.INVENTORY_VALIDATOR_PATH assertion and test_runner
substring assertions updated to match the new validator path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
Local Deploy Scripts
This is the SPOT for executable local deploy flows under scripts/tests/deploy/local/deploy/.
For other local helpers, use ../README.md. For the canonical Make target index that invokes these helpers, see make.md.
Prerequisites
- Run commands from the repository root.
- Docker and Docker Compose are available locally.
jqis installed for the app-discovery step infresh-kept-all.sh.- If you run scripts directly, load the defaults with
source scripts/meta/env/all.sh.
Naming
freshmeans the flow creates or refreshes the inventory first.reusemeans the flow uses an already existing inventory.keptmeans the stack and app state stay in place.purgedmeans the flow removes the app or stack state before redeploying.appsmeans one or more applications,allmeans every discovered application.
Entry Points
| Entry point | What it does | Key inputs | Notes |
|---|---|---|---|
fresh-kept-all.sh |
Discovers apps, creates devices.yml, and deploys all discovered apps. |
INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR |
Fresh all-app inventory path. |
reuse-kept-all.sh |
Deploys every app from an existing inventory. | INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR |
Requires ${INVENTORY_DIR}/devices.yml and .password. |
fresh-kept-app.sh <app-id> |
Creates devices.yml for one or more apps and deploys them. |
APPS=<app-id> |
Init and deploy path for a specific app set. |
reuse-kept-app.sh |
Runs a targeted infinito administration deploy dedicated for one or more apps. |
APPS, TEST_DEPLOY_TYPE, INFINITO_CONTAINER, DEBUG, INVENTORY_DIR |
Reuses devices.yml. |
fresh-purged-app.sh |
Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. |
INFINITO_DISTRO, INVENTORY_DIR, TEST_DEPLOY_TYPE, APPS |
Baseline and recovery path. |