From 994430b94bb3d237ee8380a0942c58a44dc94c06 Mon Sep 17 00:00:00 2001
From: Graham Christensen <graham@grahamc.com>
Date: Tue, 3 Mar 2020 22:46:32 -0500
Subject: [PATCH] treewide: allow `nix` command

---
 src/lib/Hydra/Controller/Build.pm | 6 ++++--
 src/script/hydra-eval-jobset      | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib/Hydra/Controller/Build.pm b/src/lib/Hydra/Controller/Build.pm
index 22bfd98e..52cb71dd 100644
--- a/src/lib/Hydra/Controller/Build.pm
+++ b/src/lib/Hydra/Controller/Build.pm
@@ -193,7 +193,8 @@ sub checkPath {
 sub serveFile {
     my ($c, $path) = @_;
 
-    my $res = run(cmd => ["nix", "ls-store", "--store", getStoreUri(), "--json", "$path"]);
+    my $res = run(cmd => ["nix", "--experimental-features", "nix-command",
+                          "ls-store", "--store", getStoreUri(), "--json", "$path"]);
 
     if ($res->{status}) {
         notFound($c, "File '$path' does not exist.") if $res->{stderr} =~ /does not exist/;
@@ -217,7 +218,8 @@ sub serveFile {
 
     elsif ($ls->{type} eq "regular") {
 
-        $c->stash->{'plain'} = { data => grab(cmd => ["nix", "cat-store", "--store", getStoreUri(), "$path"]) };
+        $c->stash->{'plain'} = { data => grab(cmd => ["nix", "--experimental-features", "nix-command",
+                                                      "cat-store", "--store", getStoreUri(), "$path"]) };
 
         # Detect MIME type. Borrowed from Catalyst::Plugin::Static::Simple.
         my $type = "text/plain";
diff --git a/src/script/hydra-eval-jobset b/src/script/hydra-eval-jobset
index cdb09b74..53a16f38 100755
--- a/src/script/hydra-eval-jobset
+++ b/src/script/hydra-eval-jobset
@@ -82,7 +82,7 @@ sub getPath {
 
     my $substituter = $config->{eval_substituter};
 
-    system("nix", "copy", "--from", $substituter, "--", $path)
+    system("nix", "--experimental-features", "nix-command", "copy", "--from", $substituter, "--", $path)
         if defined $substituter;
 
     return isValidPath($path);