arcature-cli 2026.1.1

Developer lifecycle CLI for Arcature applications.
Documentation
//! `arc db prepare` / `arc db prepare --check` — SQLx offline metadata.
//!
//! Delegates to the official SQLx CLI (`cargo sqlx prepare --workspace` /
//! `--check`). The `sqlx-cli` is a toolchain dependency (Phase 4 spec §21,
//! §22): `arc doctor` reports if it is missing, but Arcature never
//! auto-installs it.

use crate::error::CommandError;
use crate::process::{ProcessSpec, run};
use crate::project::discover;

pub(crate) fn run_prepare() -> Result<(), CommandError> {
    let project = discover()?;
    let spec = ProcessSpec::new("cargo", project.root().to_path_buf())
        .arg("sqlx")
        .arg("prepare")
        .arg("--workspace");
    run(&spec)?;
    Ok(())
}

pub(crate) fn run_prepare_check() -> Result<(), CommandError> {
    let project = discover()?;
    let spec = ProcessSpec::new("cargo", project.root().to_path_buf())
        .arg("sqlx")
        .arg("prepare")
        .arg("--workspace")
        .arg("--check");
    run(&spec)?;
    Ok(())
}