@@ -680,10 +680,13 @@ struct cli_repo { | |||
auto if_exists_action | |||
= force.Get() ? dds::if_exists::replace : dds::if_exists::throw_exc; | |||
for (std::string_view tgz_where : sdist_paths.Get()) { | |||
neo_assertion_breadcrumbs("Importing sdist", tgz_where); | |||
auto tmp_sd | |||
= (tgz_where.starts_with("http://") || tgz_where.starts_with("https://")) | |||
? dds::download_expand_sdist_targz(tgz_where) | |||
: dds::expand_sdist_targz(tgz_where); | |||
neo_assertion_breadcrumbs("Importing from temporary directory", | |||
tmp_sd.tmpdir.path()); | |||
repo.add_sdist(tmp_sd.sdist, if_exists_action); | |||
} | |||
if (import_stdin) { |
@@ -60,6 +60,7 @@ repository repository::_open_for_directory(bool writeable, path_ref dirpath) { | |||
} | |||
void repository::add_sdist(const sdist& sd, if_exists ife_action) { | |||
neo_assertion_breadcrumbs("Importing sdist archive", sd.manifest.pkg_id.to_string()); | |||
if (!_write_enabled) { | |||
dds_log( | |||
critical, | |||
@@ -117,8 +118,8 @@ std::vector<package_id> repository::solve(const std::vector<dependency>& deps, | |||
| ranges::views::transform([](const sdist& sd) { return sd.manifest.pkg_id; }); | |||
auto avail = ctlg.by_name(name); | |||
auto all = ranges::views::concat(mine, avail) | ranges::to_vector; | |||
ranges::sort(all, std::less<>{}); | |||
ranges::unique(all, std::less<>{}); | |||
ranges::sort(all, std::less{}); | |||
ranges::unique(all, std::less{}); | |||
return all; | |||
}, | |||
[&](const package_id& pkg_id) { |
@@ -133,6 +133,7 @@ sdist sdist::from_directory(path_ref where) { | |||
} | |||
temporary_sdist dds::expand_sdist_targz(path_ref targz_path) { | |||
neo_assertion_breadcrumbs("Expanding sdist targz file", targz_path.string()); | |||
auto infile = open(targz_path, std::ios::binary | std::ios::in); | |||
return expand_sdist_from_istream(infile, targz_path.string()); | |||
} |