From 39a783ffff65769d4ee9ec83f22cca1838e4bd9a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 1 Dec 2022 16:59:18 +0100 Subject: [PATCH] Require flakes for the -I flake:... feature --- src/libcmd/common-eval-args.cc | 1 + src/libexpr/flake/flake.cc | 2 ++ src/libexpr/parser.y | 1 + 3 files changed, 4 insertions(+) diff --git a/src/libcmd/common-eval-args.cc b/src/libcmd/common-eval-args.cc index 237b7a4d2..9b4011e8a 100644 --- a/src/libcmd/common-eval-args.cc +++ b/src/libcmd/common-eval-args.cc @@ -161,6 +161,7 @@ SourcePath lookupFileArg(EvalState & state, std::string_view s) } else if (hasPrefix(s, "flake:")) { + settings.requireExperimentalFeature(Xp::Flakes); auto flakeRef = parseFlakeRef(std::string(s.substr(6)), {}, true, false); auto [accessor, _] = flakeRef.resolve(state.store).lazyFetch(state.store); return accessor->root(); diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc index 05fd301e1..7c2278936 100644 --- a/src/libexpr/flake/flake.cc +++ b/src/libexpr/flake/flake.cc @@ -698,6 +698,8 @@ void callFlake(EvalState & state, const LockedFlake & lockedFlake, Value & vRes) { + settings.requireExperimentalFeature(Xp::Flakes); + auto [lockFileStr, keyMap] = lockedFlake.lockFile.to_string(); auto overrides = state.buildBindings(lockedFlake.nodePaths.size()); diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index d395a2220..3fdde0e36 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -805,6 +805,7 @@ std::optional EvalState::resolveSearchPathElem(const SearchPathElem } else if (hasPrefix(elem.second, "flake:")) { + settings.requireExperimentalFeature(Xp::Flakes); auto flakeRef = parseFlakeRef(elem.second.substr(6), {}, true, false); debug("fetching flake search path element '%s''", elem.second); auto [accessor, _] = flakeRef.resolve(store).lazyFetch(store);