Fix reading env CARGO_REGISTRIES_{registry_name}_INDEX (#1258)

Try bogth original and upper-case version.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2023-08-09 17:41:20 +10:00 committed by GitHub
parent 939c9b43b2
commit a9e2ef11f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -149,18 +149,29 @@ pub fn install_crates(
.registry .registry
.or_else(|| config.registry.and_then(|registry| registry.default)) .or_else(|| config.registry.and_then(|registry| registry.default))
{ {
env::var(format!("CARGO_REGISTRIES_{registry_name}_INDEX")) let registry_name_lowercase = registry_name.to_lowercase();
.map(Cow::Owned)
.or_else(|_| { let v = env::vars().find_map(|(k, v)| {
config let name_lowercase = k
.registries .strip_prefix("CARGO_REGISTRIES_")?
.as_ref() .strip_suffix("_INDEX")?
.and_then(|registries| registries.get(&registry_name)) .to_lowercase();
.and_then(|registry| registry.index.as_deref().map(Cow::Borrowed))
.ok_or_else(|| BinstallError::UnknownRegistryName(registry_name)) (name_lowercase == registry_name_lowercase).then_some(v)
})? });
.parse()
.map_err(BinstallError::from)? if let Some(v) = &v {
v
} else {
config
.registries
.as_ref()
.and_then(|registries| registries.get(&registry_name))
.and_then(|registry| registry.index.as_deref())
.ok_or_else(|| BinstallError::UnknownRegistryName(registry_name))?
}
.parse()
.map_err(BinstallError::from)?
} else { } else {
Default::default() Default::default()
}, },