Add container::hooks::run_post_install — runs an app's declarative post_install hooks against its own running container: - Exec -> podman exec <container> <args…> (60s timeout-bounded) - CopyFromHost -> resolve src against allowlist roots (<data_dir>/<app> and /opt/archipelago), canonicalise + prefix-check (defeats symlink escape), then podman cp <abs-src> <container>:<dest> Best-effort + idempotent: a failed step is warned and skipped, never fails the install — matching the legacy patch_indeedhub_nostr_provider behaviour this replaces. Wired into install_fresh after the container is up, so it runs only on a freshly created container (not plain start), and re-applies on recreate-after-drift. 5 unit tests on resolve_copy_src (accept in-data-dir, reject absolute / traversal / missing / symlink-escape). cargo test -p archipelago green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
611 B
Rust
23 lines
611 B
Rust
pub mod app_catalog;
|
|
pub mod bitcoin_ui;
|
|
pub mod boot_reconciler;
|
|
pub mod companion;
|
|
pub mod data_manager;
|
|
pub mod dev_orchestrator;
|
|
pub mod docker_packages;
|
|
pub mod filebrowser;
|
|
pub mod hooks;
|
|
pub mod image_versions;
|
|
pub mod lnd;
|
|
pub mod prod_orchestrator;
|
|
pub mod quadlet;
|
|
pub mod registry;
|
|
pub mod secrets;
|
|
pub mod traits;
|
|
|
|
pub use boot_reconciler::{BootReconciler, DEFAULT_INTERVAL as RECONCILER_DEFAULT_INTERVAL};
|
|
pub use dev_orchestrator::DevContainerOrchestrator;
|
|
pub use docker_packages::DockerPackageScanner;
|
|
pub use prod_orchestrator::ProdContainerOrchestrator;
|
|
pub use traits::ContainerOrchestrator;
|