pub mod add;
pub mod doctor;
pub mod exec;
pub mod import;
pub mod init;
pub mod ls;
pub mod migrate_lockfile;
pub mod rm;
pub mod run;
pub mod serve;
pub mod status;
pub mod sync;
pub mod teardown;
pub mod update;
pub(crate) fn emit_unimplemented_json(verb: &str) -> anyhow::Result<()> {
let doc = serde_json::json!({
"status": "unimplemented",
"verb": verb,
});
println!("{}", serde_json::to_string(&doc)?);
Ok(())
}
pub(crate) fn resolve_pack_root_or_cwd(
explicit: Option<&std::path::Path>,
) -> Option<std::path::PathBuf> {
if let Some(p) = explicit {
return Some(p.to_path_buf());
}
let cwd = std::env::current_dir().ok()?;
if cwd.join(".grex").join("pack.yaml").is_file() {
Some(cwd)
} else {
None
}
}