Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::fetchers::InputScheme Struct Referenceabstract

#include <fetchers.hh>

Inheritance diagram for nix::fetchers::InputScheme:
nix::fetchers::CurlInputScheme nix::fetchers::GitArchiveInputScheme nix::fetchers::GitInputScheme nix::fetchers::IndirectInputScheme nix::fetchers::MercurialInputScheme nix::fetchers::PathInputScheme nix::fetchers::FileInputScheme nix::fetchers::TarballInputScheme nix::fetchers::GitHubInputScheme nix::fetchers::GitLabInputScheme nix::fetchers::SourceHutInputScheme

Public Member Functions

virtual std::optional< InputinputFromURL (const ParsedURL &url, bool requireTree) const =0
virtual std::optional< InputinputFromAttrs (const Attrs &attrs) const =0
virtual ParsedURL toURL (const Input &input) const
virtual bool hasAllInfo (const Input &input) const =0
virtual Input applyOverrides (const Input &input, std::optional< std::string > ref, std::optional< Hash > rev) const
virtual void clone (const Input &input, const Path &destDir) const
virtual std::optional< PathgetSourcePath (const Input &input) const
virtual void putFile (const Input &input, const CanonPath &path, std::string_view contents, std::optional< std::string > commitMsg) const
virtual kj::Promise< Result< std::pair< StorePath, Input > > > fetch (ref< Store > store, const Input &input)=0
virtual bool isLockedByRev () const

Protected Member Functions

void emplaceURLQueryIntoAttrs (const ParsedURL &parsedURL, Attrs &attrs, const StringSet &numericParams, const StringSet &booleanParams) const

Detailed Description

The InputScheme represents a type of fetcher. Each fetcher registers with nix at startup time. When processing an input for a flake, each scheme is given an opportunity to "recognize" that input from the url or attributes in the flake file's specification and return an Input object to represent the input if it is recognized. The Input object contains the information the fetcher needs to actually perform the "fetch()" when called.


The documentation for this struct was generated from the following files:
  • lix/libfetchers/fetchers.hh
  • lix/libfetchers/fetchers.cc