#![deny(missing_docs)]
#![forbid(unsafe_code)]
use std::{path::Path, process::Command};
pub const CARGO_METADATA_ARGS: [&str; 5] =
["metadata", "--format-version", "1", "--locked", "--no-deps"];
pub fn cargo_metadata_command(root: &Path) -> Command {
let mut command = Command::new("cargo");
command.args(CARGO_METADATA_ARGS).current_dir(root);
command
}
mod base;
mod check;
mod classify;
mod compare;
mod execute;
mod generate;
mod runner;
mod walk;
pub use base::{
BaseDiffInputs, BaseError, BaseInputsError, BaseSchemasError, DefaultBase, GitToolError,
ResolvedBase, base_diff_inputs, base_diff_inputs_with_candidate, base_package_schemas,
resolve_base, resolve_default_base,
};
pub use check::{
CheckClassificationError, ClassifyStepError, DuplicatePackages, PackageSchemas, classify_step,
};
pub use classify::{ClassifyError, classify};
pub use compare::{
CompareDifference, CompareStepError, DifferenceKind, compare_plans, compare_step,
composition_step,
};
pub use execute::{ExecuteError, ExecutePlans, Outcome, execute, execute_plans};
pub use generate::{GenerationPlan, PlanError, ResolvedImport, plan};
pub use runner::{
CapturedOutput, CommandRunner, CommandSpec, QualityCommand, SpawnError, ToolStep, clippy_spec,
fmt_packages, fmt_spec, lock_spec, quality_specs, run_clippy_step, run_command, run_fmt_step,
run_lock_step, run_quality_step, run_test_step, test_spec,
};
pub use walk::{WalkError, WalkedWorkspace, walk};