Merge pull request #10846 from NixOS/backport-9897-to-2.22-maintenance

[Backport 2.22-maintenance] libutil/url: fix git+file:./ parse error
This commit is contained in:
Robert Hensing 2024-06-04 11:07:42 +02:00 committed by GitHub
commit 283d68c4c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -171,16 +171,16 @@ std::string fixGitURL(const std::string & url)
std::regex scpRegex("([^/]*)@(.*):(.*)");
if (!hasPrefix(url, "/") && std::regex_match(url, scpRegex))
return std::regex_replace(url, scpRegex, "ssh://$1@$2/$3");
else {
if (url.find("://") == std::string::npos) {
return (ParsedURL {
.scheme = "file",
.authority = "",
.path = url
}).to_string();
} else
return url;
if (hasPrefix(url, "file:"))
return url;
if (url.find("://") == std::string::npos) {
return (ParsedURL {
.scheme = "file",
.authority = "",
.path = url
}).to_string();
}
return url;
}
// https://www.rfc-editor.org/rfc/rfc3986#section-3.1