mirror of
https://github.com/NixOS/nix.git
synced 2025-12-02 23:20:59 +01:00
Don't require .tar/.zip extension for tarball flakerefs
Special-casing the file name is rather ugly, so we shouldn't do
that. So now any {file,http,https} URL is handled by
TarballInputScheme, except for non-flake inputs (i.e. inputs that have
the attribute `flake = false`).
This commit is contained in:
parent
dcdd5fed74
commit
d9e7758f47
10 changed files with 37 additions and 25 deletions
|
|
@ -13,9 +13,9 @@ void registerInputScheme(std::shared_ptr<InputScheme> && inputScheme)
|
|||
inputSchemes->push_back(std::move(inputScheme));
|
||||
}
|
||||
|
||||
Input Input::fromURL(const std::string & url)
|
||||
Input Input::fromURL(const std::string & url, bool requireTree)
|
||||
{
|
||||
return fromURL(parseURL(url));
|
||||
return fromURL(parseURL(url), requireTree);
|
||||
}
|
||||
|
||||
static void fixupInput(Input & input)
|
||||
|
|
@ -31,10 +31,10 @@ static void fixupInput(Input & input)
|
|||
input.locked = true;
|
||||
}
|
||||
|
||||
Input Input::fromURL(const ParsedURL & url)
|
||||
Input Input::fromURL(const ParsedURL & url, bool requireTree)
|
||||
{
|
||||
for (auto & inputScheme : *inputSchemes) {
|
||||
auto res = inputScheme->inputFromURL(url);
|
||||
auto res = inputScheme->inputFromURL(url, requireTree);
|
||||
if (res) {
|
||||
res->scheme = inputScheme;
|
||||
fixupInput(*res);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue