1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-14 06:22:42 +01:00

Move fetchers from libstore to libfetchers

This commit is contained in:
Eelco Dolstra 2020-03-30 14:03:28 +02:00
parent 4ba4c7ff66
commit e0a0ae0467
35 changed files with 80 additions and 90 deletions

View file

@ -2,8 +2,8 @@
#include "eval-inline.hh"
#include "store-api.hh"
#include "hash.hh"
#include "fetchers/fetchers.hh"
#include "fetchers/parse.hh"
#include "fetchers.hh"
#include "url.hh"
namespace nix {
@ -48,14 +48,14 @@ static void prim_fetchGit(EvalState & state, const Pos & pos, Value * * args, Va
if (evalSettings.pureEval && !rev)
throw Error("in pure evaluation mode, 'fetchGit' requires a Git revision");
auto parsedUrl = fetchers::parseURL(
auto parsedUrl = parseURL(
url.find("://") != std::string::npos
? "git+" + url
: "git+file://" + url);
if (ref) parsedUrl.query.insert_or_assign("ref", *ref);
if (rev) parsedUrl.query.insert_or_assign("rev", rev->gitRev());
// FIXME: use name
auto input = inputFromURL(parsedUrl);
auto input = fetchers::inputFromURL(parsedUrl);
auto [tree, input2] = input->fetchTree(state.store);

View file

@ -1,9 +1,8 @@
#include "primops.hh"
#include "eval-inline.hh"
#include "store-api.hh"
#include "fetchers/fetchers.hh"
#include "fetchers/parse.hh"
#include "fetchers/regex.hh"
#include "fetchers.hh"
#include "url.hh"
#include <regex>
@ -31,7 +30,7 @@ static void prim_fetchMercurial(EvalState & state, const Pos & pos, Value * * ar
// Ugly: unlike fetchGit, here the "rev" attribute can
// be both a revision or a branch/tag name.
auto value = state.forceStringNoCtx(*attr.value, *attr.pos);
if (std::regex_match(value, fetchers::revRegex))
if (std::regex_match(value, revRegex))
rev = Hash(value, htSHA1);
else
ref = value;
@ -55,14 +54,14 @@ static void prim_fetchMercurial(EvalState & state, const Pos & pos, Value * * ar
if (evalSettings.pureEval && !rev)
throw Error("in pure evaluation mode, 'fetchMercurial' requires a Mercurial revision");
auto parsedUrl = fetchers::parseURL(
auto parsedUrl = parseURL(
url.find("://") != std::string::npos
? "hg+" + url
: "hg+file://" + url);
if (rev) parsedUrl.query.insert_or_assign("rev", rev->gitRev());
if (ref) parsedUrl.query.insert_or_assign("ref", *ref);
// FIXME: use name
auto input = inputFromURL(parsedUrl);
auto input = fetchers::inputFromURL(parsedUrl);
auto [tree, input2] = input->fetchTree(state.store);

View file

@ -1,8 +1,8 @@
#include "primops.hh"
#include "eval-inline.hh"
#include "store-api.hh"
#include "fetchers/fetchers.hh"
#include "fetchers/registry.hh"
#include "fetchers.hh"
#include "registry.hh"
#include "download.hh"
#include <ctime>