aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Bereknyei <tomberek@gmail.com>2022-05-20 08:20:00 -0400
committerTom Bereknyei <tomberek@gmail.com>2022-05-20 08:20:00 -0400
commit7a04fb1c56ca60652c2a44019b31fe8cf2e2bc46 (patch)
treeb16cd5856ca2ebec17fc5719ce7dfb9385e72741
parent0053dab43f9ca350c27235f8a58b5d550bfffd38 (diff)
repl: add repl-flake experimental feature for gating
-rw-r--r--src/libutil/experimental-features.cc1
-rw-r--r--src/libutil/experimental-features.hh1
-rw-r--r--src/nix/repl.cc2
-rw-r--r--tests/repl.sh6
4 files changed, 6 insertions, 4 deletions
diff --git a/src/libutil/experimental-features.cc b/src/libutil/experimental-features.cc
index 315de64a4..fa79cca6b 100644
--- a/src/libutil/experimental-features.cc
+++ b/src/libutil/experimental-features.cc
@@ -13,6 +13,7 @@ std::map<ExperimentalFeature, std::string> stringifiedXpFeatures = {
{ Xp::RecursiveNix, "recursive-nix" },
{ Xp::NoUrlLiterals, "no-url-literals" },
{ Xp::FetchClosure, "fetch-closure" },
+ { Xp::ReplFlake, "repl-flake" },
};
const std::optional<ExperimentalFeature> parseExperimentalFeature(const std::string_view & name)
diff --git a/src/libutil/experimental-features.hh b/src/libutil/experimental-features.hh
index 57512830c..d09ab025c 100644
--- a/src/libutil/experimental-features.hh
+++ b/src/libutil/experimental-features.hh
@@ -22,6 +22,7 @@ enum struct ExperimentalFeature
RecursiveNix,
NoUrlLiterals,
FetchClosure,
+ ReplFlake,
};
/**
diff --git a/src/nix/repl.cc b/src/nix/repl.cc
index e9898c08c..b12f05c15 100644
--- a/src/nix/repl.cc
+++ b/src/nix/repl.cc
@@ -897,7 +897,7 @@ struct CmdRepl : InstallablesCommand
}
void prepare()
{
- if (!settings.isExperimentalFeatureEnabled(Xp::Flakes) && !(file) && this->_installables.size() >= 1) {
+ if (!settings.isExperimentalFeatureEnabled(Xp::ReplFlake) && !(file) && this->_installables.size() >= 1) {
warn("future versions of Nix will require using `--file` to load a file");
if (this->_installables.size() > 1)
warn("more than one input file is not currently supported");
diff --git a/tests/repl.sh b/tests/repl.sh
index 07f647585..5caf0a58a 100644
--- a/tests/repl.sh
+++ b/tests/repl.sh
@@ -87,7 +87,7 @@ drvPath
testReplResponse '
drvPath
' '".*-simple.drv"' \
---file $testDir/simple.nix --experimental-features 'flakes'
+--file $testDir/simple.nix --experimental-features 'repl-flake'
mkdir -p flake && cat <<EOF > flake/flake.nix
{
@@ -102,7 +102,7 @@ EOF
testReplResponse '
foo + baz
' "3" \
- ./flake ./flake\#bar
+ ./flake ./flake\#bar --experimental-features 'flakes repl-flake'
# Test the `:reload` mechansim with flakes:
# - Eval `./flake#changingThing`
@@ -115,6 +115,6 @@ sleep 1 # Leave the repl the time to eval 'foo'
sed -i 's/beforeChange/afterChange/' flake/flake.nix
echo ":reload"
echo "changingThing"
-) | nix repl ./flake)
+) | nix repl ./flake --experimental-features 'flakes repl-flake')
echo "$replResult" | grep -qs beforeChange
echo "$replResult" | grep -qs afterChange