aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops
diff options
context:
space:
mode:
authorKalle Jepsen <git@ksonj.net>2021-11-17 13:49:10 +0100
committerKalle Jepsen <git@ksonj.net>2021-11-17 13:49:10 +0100
commit46d2a5a10be7e48679a29d487adbb6f1d6fd452a (patch)
tree523e608b33db2b5a803b0088e8f7cd0d7ef59658 /src/libexpr/primops
parent6d46b5b609f8f85968e1ca7aaf7c57dd52d0521c (diff)
Simplify fix by disallowing / in front of @ to match scp style
Diffstat (limited to 'src/libexpr/primops')
-rw-r--r--src/libexpr/primops/fetchTree.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libexpr/primops/fetchTree.cc b/src/libexpr/primops/fetchTree.cc
index b307ac04a..079513873 100644
--- a/src/libexpr/primops/fetchTree.cc
+++ b/src/libexpr/primops/fetchTree.cc
@@ -77,8 +77,8 @@ std::string fixURIForGit(std::string uri, EvalState & state)
/* Detects scp-style uris (e.g. git@github.com:NixOS/nix) and fixes
* them by removing the `:` and assuming a scheme of `ssh://`
* */
- static std::regex scp_uri("([^/].*)@(.*):(.*)");
- if (uri[0] != '/' && std::regex_match(uri, scp_uri) && uri.find("://") == std::string::npos)
+ static std::regex scp_uri("([^/]*)@(.*):(.*)");
+ if (uri[0] != '/' && std::regex_match(uri, scp_uri))
return fixURI(std::regex_replace(uri, scp_uri, "$1@$2/$3"), state, "ssh");
else
return fixURI(uri, state);