//! Says what a machine's didbot stack is, and what is wrong with one. //! //! # What this is for //! //! The stack itself comes up from a checkout: a handful of scripts, each //! finding the others by default. What does not come up from a checkout is the //! description of which services a machine runs, which profile a directory is //! bound to, and whether any of it is answering. //! //! That is the whole subject. It is small, and it is the part that is //! different on every machine. //! //! # The shape //! //! [`check`] probes rather than acts, so it is safe to run at any moment and //! says the same things the dev scripts assume. [`disk`] answers the other //! question a checkout raises on its own: what the build directories cost. //! //! Idempotence and resumability are not features here; they fall out of //! probing rather than acting. //! //! # What it will not do //! //! Restart a service, install a certificate authority, or bind a privileged //! port. Those are named as steps and stopped on, with the command to run, //! rather than attempted quietly. #![forbid(unsafe_code)] pub mod check; pub mod disk; pub use check::{Finding, Findings, Level};