Skip to main content

ferro_cli/doctor/checks/
mod.rs

1//! Concrete doctor checks.
2
3pub mod copy_dirs_dockerignore_collision;
4pub mod database_url_sqlite_in_prod;
5pub mod db_connection;
6pub mod deploy_env_parity;
7pub mod dirty_git_tree;
8pub mod docker_template_drift;
9pub mod frontend_types_convention;
10pub mod generated_artifacts;
11pub mod local_env_parity;
12pub mod migrate_gate;
13pub mod migrations;
14pub mod toolchain;
15
16pub use copy_dirs_dockerignore_collision::CopyDirsDockerignoreCollisionCheck;
17pub use database_url_sqlite_in_prod::DatabaseUrlSqliteInProdCheck;
18pub use db_connection::DbConnectionCheck;
19pub use deploy_env_parity::DeployEnvParityCheck;
20pub use dirty_git_tree::DirtyGitTreeCheck;
21pub use docker_template_drift::DockerTemplateDriftCheck;
22pub use frontend_types_convention::FrontendTypesConventionCheck;
23pub use generated_artifacts::GeneratedArtifactsCheck;
24pub use local_env_parity::LocalEnvParityCheck;
25pub use migrate_gate::MigrateGateCheck;
26pub use migrations::MigrationsCheck;
27pub use toolchain::ToolchainCheck;
28
29use std::path::Path;
30use std::process::{Command, Output};
31
32/// Shared helper for checks that shell out to `cargo run -- <subcommand>`.
33pub(crate) fn run_cargo_subcommand(root: &Path, args: &[&str]) -> std::io::Result<Output> {
34    let mut cmd = Command::new("cargo");
35    cmd.arg("run").arg("--quiet").arg("--").args(args);
36    cmd.current_dir(root);
37    cmd.output()
38}