blob: abd18f783c710ebd4c98c81eeb6036458032cb47 [file] [edit]
use crate::ops;
use crate::util::CargoResult;
use crate::workspace::{PackageIdSpec, PackageIdSpecQuery, Workspace};
pub fn pkgid(ws: &Workspace<'_>, spec: Option<&str>) -> CargoResult<PackageIdSpec> {
let Some(resolve) = ops::load_pkg_lockfile(ws)? else {
anyhow::bail!("a Cargo.lock must exist for this command")
};
let pkgid = match spec {
Some(spec) => PackageIdSpec::query_str(spec, resolve.iter())?,
None => ws.current()?.package_id(),
};
Ok(pkgid.to_spec())
}