diff --git a/tools/publisher/src/subcommand/fix_manifests.rs b/tools/publisher/src/subcommand/fix_manifests.rs index 4faa2f1bdb04b604da73e7dcba96b289f10693bd..75e8a4d8fd23194373f889e442eb062e8359bf95 100644 --- a/tools/publisher/src/subcommand/fix_manifests.rs +++ b/tools/publisher/src/subcommand/fix_manifests.rs @@ -53,13 +53,19 @@ async fn read_manifests(fs: Fs, manifest_paths: Vec) -> Result Result> { let mut versions = BTreeMap::new(); for manifest in manifests { - let name = manifest.metadata["package"]["name"] - .as_str() + let name = manifest + .metadata + .get("package") + .and_then(|package| package.get("name")) + .and_then(|name| name.as_str()) .ok_or_else(|| { anyhow::Error::msg(format!("{:?} is missing a package name", manifest.path)) })?; - let version = manifest.metadata["package"]["version"] - .as_str() + let version = manifest + .metadata + .get("package") + .and_then(|package| package.get("version")) + .and_then(|name| name.as_str()) .ok_or_else(|| { anyhow::Error::msg(format!("{:?} is missing a package version", manifest.path)) })?;