diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2022-04-19 13:45:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-19 13:45:33 +0200 |
commit | 51712bf0127e995c94a4b598b045d52cf667dcef (patch) | |
tree | dec8970d571edf1753af01f067b90718714b48f2 /src/libexpr | |
parent | 2016b7142ad1282981ad1505085fff0ac9c7d66c (diff) | |
parent | da7d8daa77c2cce5805947a012060b02be9e4a43 (diff) |
Merge pull request #6128 from ncfavier/fix-completion
Shell completion improvements
Diffstat (limited to 'src/libexpr')
-rw-r--r-- | src/libexpr/common-eval-args.cc | 101 | ||||
-rw-r--r-- | src/libexpr/common-eval-args.hh | 27 |
2 files changed, 0 insertions, 128 deletions
diff --git a/src/libexpr/common-eval-args.cc b/src/libexpr/common-eval-args.cc deleted file mode 100644 index e50ff244c..000000000 --- a/src/libexpr/common-eval-args.cc +++ /dev/null @@ -1,101 +0,0 @@ -#include "common-eval-args.hh" -#include "shared.hh" -#include "filetransfer.hh" -#include "util.hh" -#include "eval.hh" -#include "fetchers.hh" -#include "registry.hh" -#include "flake/flakeref.hh" -#include "store-api.hh" - -namespace nix { - -MixEvalArgs::MixEvalArgs() -{ - auto category = "Common evaluation options"; - - addFlag({ - .longName = "arg", - .description = "Pass the value *expr* as the argument *name* to Nix functions.", - .category = category, - .labels = {"name", "expr"}, - .handler = {[&](std::string name, std::string expr) { autoArgs[name] = 'E' + expr; }} - }); - - addFlag({ - .longName = "argstr", - .description = "Pass the string *string* as the argument *name* to Nix functions.", - .category = category, - .labels = {"name", "string"}, - .handler = {[&](std::string name, std::string s) { autoArgs[name] = 'S' + s; }}, - }); - - addFlag({ - .longName = "include", - .shortName = 'I', - .description = "Add *path* to the list of locations used to look up `<...>` file names.", - .category = category, - .labels = {"path"}, - .handler = {[&](std::string s) { searchPath.push_back(s); }} - }); - - addFlag({ - .longName = "impure", - .description = "Allow access to mutable paths and repositories.", - .category = category, - .handler = {[&]() { - evalSettings.pureEval = false; - }}, - }); - - addFlag({ - .longName = "override-flake", - .description = "Override the flake registries, redirecting *original-ref* to *resolved-ref*.", - .category = category, - .labels = {"original-ref", "resolved-ref"}, - .handler = {[&](std::string _from, std::string _to) { - auto from = parseFlakeRef(_from, absPath(".")); - auto to = parseFlakeRef(_to, absPath(".")); - fetchers::Attrs extraAttrs; - if (to.subdir != "") extraAttrs["dir"] = to.subdir; - fetchers::overrideRegistry(from.input, to.input, extraAttrs); - }} - }); - - addFlag({ - .longName = "eval-store", - .description = "The Nix store to use for evaluations.", - .category = category, - .labels = {"store-url"}, - .handler = {&evalStoreUrl}, - }); -} - -Bindings * MixEvalArgs::getAutoArgs(EvalState & state) -{ - auto res = state.buildBindings(autoArgs.size()); - for (auto & i : autoArgs) { - auto v = state.allocValue(); - if (i.second[0] == 'E') - state.mkThunk_(*v, state.parseExprFromString(i.second.substr(1), absPath("."))); - else - v->mkString(((std::string_view) i.second).substr(1)); - res.insert(state.symbols.create(i.first), v); - } - return res.finish(); -} - -Path lookupFileArg(EvalState & state, std::string_view s) -{ - if (isUri(s)) { - return state.store->toRealPath( - fetchers::downloadTarball( - state.store, resolveUri(s), "source", false).first.storePath); - } else if (s.size() > 2 && s.at(0) == '<' && s.at(s.size() - 1) == '>') { - Path p(s.substr(1, s.size() - 2)); - return state.findFile(p); - } else - return absPath(std::string(s)); -} - -} diff --git a/src/libexpr/common-eval-args.hh b/src/libexpr/common-eval-args.hh deleted file mode 100644 index 03fa226aa..000000000 --- a/src/libexpr/common-eval-args.hh +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include "args.hh" - -namespace nix { - -class Store; -class EvalState; -class Bindings; - -struct MixEvalArgs : virtual Args -{ - MixEvalArgs(); - - Bindings * getAutoArgs(EvalState & state); - - Strings searchPath; - - std::optional<std::string> evalStoreUrl; - -private: - std::map<std::string, std::string> autoArgs; -}; - -Path lookupFileArg(EvalState & state, std::string_view s); - -} |