use crate::process::{ProcessSpec, run_capture};
use crate::project::ProjectConfig;
use super::artifact::MetadataArtifact;
pub(crate) fn load(project: &ProjectConfig) -> Result<MetadataArtifact, String> {
let output = run_capture(&ProcessSpec::new("cargo", project.root()).args([
"run",
"--quiet",
"--package",
&project.backend_package,
"--bin",
"arcature-metadata",
]))
.map_err(|error| format!("cannot inspect the application metadata: {error}"))?;
serde_json::from_slice(&output)
.map_err(|error| format!("arcature-metadata did not emit valid JSON: {error}"))
}