From 9be433ac34057a2c9c1757ec41f8b3f6361f98dc Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 4 Jul 2018 22:10:38 +0300 Subject: Strip .git extension for non-existent local prerequisite location If the local prerequisite git repository having the .git extension doesn't exist but the one without the extension does, then strip the extension from the location. --- bpkg/rep-fetch.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'bpkg') diff --git a/bpkg/rep-fetch.cxx b/bpkg/rep-fetch.cxx index 2de6a01..b905a7b 100644 --- a/bpkg/rep-fetch.cxx +++ b/bpkg/rep-fetch.cxx @@ -533,6 +533,27 @@ namespace bpkg << "': " << e << info << "base repository location is " << rl; } + + // If the local prerequisite git repository having the .git extension + // doesn't exist but the one without the extension does, then we + // strip the extension from the location. + // + if (l.local () && + l.type () == repository_type::git && + l.path ().extension () == "git") + { + dir_path d (path_cast (l.path ())); + + if (!exists (d) && exists (d.base () / dir_path (".git"))) + { + repository_url u (l.url ()); + + assert (u.path); + u.path->make_base (); + + l = repository_location (u, l.type ()); + } + } } } } -- cgit v1.1