Ver código fonte

github: URLs for adding remote listings

default_compile_flags
vector-of-bool 5 anos atrás
pai
commit
272580bd6c
1 arquivos alterados com 14 adições e 0 exclusões
  1. +14
    -0
      src/dds/pkg/info.cpp

+ 14
- 0
src/dds/pkg/info.cpp Ver arquivo



#include <neo/url.hpp> #include <neo/url.hpp>
#include <neo/utility.hpp> #include <neo/utility.hpp>
#include <range/v3/distance.hpp>


using namespace dds; using namespace dds;


auto namever_path = replace(leaf, "@", "/"); auto namever_path = replace(leaf, "@", "/");
url.path = (path.parent_path() / "pkg" / namever_path / "sdist.tar.gz").generic_string(); url.path = (path.parent_path() / "pkg" / namever_path / "sdist.tar.gz").generic_string();
return http_remote_listing::from_url(url.to_string()); return http_remote_listing::from_url(url.to_string());
} else if (url.scheme == "github") {
fs::path path = url.path;
if (ranges::distance(path) != 2) {
throw_user_error<errc::invalid_remote_url>(
"github: URLs should have a path with two segments");
}
auto fragment = url.fragment;
if (!fragment) {
throw_user_error<errc::invalid_remote_url>(
"github: URLs should have a fragment naming a Git ref to pull from");
}
auto new_url = fmt::format("https://github.com/{}/archive/{}.tar.gz", url.path, *fragment);
return parse_remote_url(new_url);
} else { } else {
throw_user_error< throw_user_error<
errc::invalid_remote_url>("Unknown scheme '{}' for remote package URL '{}'", errc::invalid_remote_url>("Unknown scheme '{}' for remote package URL '{}'",

Carregando…
Cancelar
Salvar