about summary refs log tree commit diff
path: root/pkgs/taalo-build
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2017-11-12 20:40:59 +0100
committeraszlig <aszlig@nix.build>2017-11-12 20:40:59 +0100
commitb5954cf18c7933bde5d952821a8457b64da52d65 (patch)
tree9c21b93208ce2af517a634ca023d087b745dfb39 /pkgs/taalo-build
parent9fcd4d0350670b1b7c4edf9c57e5bced82f23134 (diff)
taalo-build: Rewrite as wrapper and move to pkgs
We no longer use the legacy SSH store protocol for taalo but the new
ssh-ng protocol, which makes the implementation of taalo-build a LOT
less clunky.

It also didn't make sense to have this as a NixOS module when we after
all just emit a static store path without any stuff depending on
configuration options.

The new implementation basically just wraps nix-build and nix-store -r
along with the right NIX_REMOTE variable.

With Nix 1.2 this can also be done with the new "nix build" command
using the --store option, but unfortunately "nix build" doesn't yet have
the same functionality as nix-build.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch, @bendlas
Diffstat (limited to 'pkgs/taalo-build')
-rw-r--r--pkgs/taalo-build/default.nix19
1 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/taalo-build/default.nix b/pkgs/taalo-build/default.nix
new file mode 100644
index 00000000..d9ff8976
--- /dev/null
+++ b/pkgs/taalo-build/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, runCommand, nixUnstable }:
+
+let
+  nixRemote = "ssh-ng://nix-remote-build@taalo.headcounter.org?compress=true";
+
+  mkScript = cmd: lib.escapeShellArg ''
+    #!${stdenv.shell}
+    export NIX_REMOTE=${lib.escapeShellArg nixRemote}
+    exec ${lib.escapeShellArg nixUnstable}/bin/${cmd} "$@"
+  '';
+
+in runCommand "taalo-build" {} ''
+  mkdir -p "$out/bin"
+
+  echo -n ${mkScript "nix-build"} > "$out/bin/taalo-build"
+  echo -n ${mkScript "nix-store -r"} > "$out/bin/taalo-realize"
+
+  chmod +x "$out"/bin/taalo-{build,realize}
+''