callisto_cli/
workspace.rs1use callisto_graph::infer::SeverityInference;
2use callisto_graph::locate::{find_workspace_root, IgnoreWalkLocator};
3use callisto_graph::resolver::ManifestWalkResolver;
4use callisto_graph::Workspace;
5
6use crate::cli::GlobalArgs;
7use crate::error::CliError;
8use crate::runner::CliCommandRunner;
9
10pub fn load_workspace<'a>(
11 global: &GlobalArgs,
12 runner: &'a CliCommandRunner,
13) -> Result<Workspace<'a, CliCommandRunner, ManifestWalkResolver>, CliError> {
14 let start = dunce::canonicalize(&global.cwd).map_err(|source| CliError::Io {
15 source,
16 path: Some(global.cwd.clone()),
17 })?;
18 let root = find_workspace_root(&start)?;
19 let locator = IgnoreWalkLocator::new(&root);
20 Ok(Workspace::load(root, &locator, runner)?)
21}
22
23#[cfg(not(feature = "inference"))]
29pub fn select_inference() -> impl SeverityInference {
30 callisto_graph::infer::NoInference
31}
32
33#[cfg(feature = "inference")]
34pub fn select_inference() -> impl SeverityInference {
35 callisto_graph::infer::CommitInference
36}