about summary refs log tree commit diff
path: root/pkgs/profpatsch/execline
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2019-09-26 03:49:38 +0200
committerProfpatsch <mail@profpatsch.de>2019-09-26 03:51:25 +0200
commit93f5d251eaf7d2944d542281ae6e54ccfa306fd0 (patch)
treeae5857e1cfd779207cacc14d2c68ad1de1a8eb25 /pkgs/profpatsch/execline
parent61dda874aab6fe77d3d71eb4845ba3717e9c80d2 (diff)
pkgs/profpatsch/runExecline: move to writeCommand form
It’s conventional that these tools have the form

  tool name options data

so we should adhere to that.
Diffstat (limited to 'pkgs/profpatsch/execline')
-rw-r--r--pkgs/profpatsch/execline/run-execline-tests.nix52
-rw-r--r--pkgs/profpatsch/execline/run-execline.nix13
-rw-r--r--pkgs/profpatsch/execline/symlink.nix48
3 files changed, 51 insertions, 62 deletions
diff --git a/pkgs/profpatsch/execline/run-execline-tests.nix b/pkgs/profpatsch/execline/run-execline-tests.nix
index 02894956..c3f534cc 100644
--- a/pkgs/profpatsch/execline/run-execline-tests.nix
+++ b/pkgs/profpatsch/execline/run-execline-tests.nix
@@ -5,23 +5,21 @@
 let
 
   # lol
-  writeScript = name: script: runExecline {
-    inherit name;
+  writeScript = name: script: runExecline name {
     derivationArgs = {
       inherit script;
       passAsFile = [ "script" ];
       preferLocalBuild = true;
       allowSubstitutes = false;
     };
-    execline = [
+  } [
       "importas" "-ui" "s" "scriptPath"
       "importas" "-ui" "out" "out"
       "foreground" [
         "${coreutils}/bin/mv" "$s" "$out"
       ]
       "${bin.s6-chmod}" "0755" "$out"
-    ];
-   };
+  ];
 
   # execline block of depth 1
   block = args: builtins.map (arg: " ${arg}") args ++ [ "" ];
@@ -48,50 +46,44 @@ let
   };
 
   # basic test that touches out
-  basic = runExecline {
-    name = "run-execline-test-basic";
-    execline = [
-      "importas" "-ui" "out" "out"
-      "${bin.s6-touch}" "$out"
-    ];
+  basic = runExecline "run-execline-test-basic" {
     derivationArgs = {
       preferLocalBuild = true;
       allowSubstitutes = false;
     };
-  };
+  } [
+      "importas" "-ui" "out" "out"
+      "${bin.s6-touch}" "$out"
+  ];
 
   # whether the stdin argument works as intended
-  stdin = fileHasLine "foo" (runExecline {
-    name = "run-execline-test-stdin";
+  stdin = fileHasLine "foo" (runExecline "run-execline-test-stdin" {
     stdin = "foo\nbar\nfoo";
-    execline = [
-      "importas" "-ui" "out" "out"
-      # this pipes stdout of s6-cat to $out
-      # and s6-cat redirects from stdin to stdout
-      "redirfd" "-w" "1" "$out" bin.s6-cat
-    ];
     derivationArgs = {
       preferLocalBuild = true;
       allowSubstitutes = false;
     };
-  });
+  } [
+      "importas" "-ui" "out" "out"
+      # this pipes stdout of s6-cat to $out
+      # and s6-cat redirects from stdin to stdout
+      "redirfd" "-w" "1" "$out" bin.s6-cat
+  ]);
 
-  wrapWithVar = runExecline {
-    name = "run-execline-test-wrap-with-var";
+  wrapWithVar = runExecline "run-execline-test-wrap-with-var" {
     builderWrapper = writeScript "var-wrapper" ''
       #!${bin.execlineb} -S0
       export myvar myvalue $@
     '';
-    execline = [
-      "importas" "-ui" "v" "myvar"
-      "if" [ bin.s6-test "myvalue" "=" "$v" ]
-        "importas" "out" "out"
-        bin.s6-touch "$out"
-    ];
     derivationArgs = {
       preferLocalBuild = true;
       allowSubstitutes = false;
     };
-  };
+  } [
+    "importas" "-ui" "v" "myvar"
+    "if" [ bin.s6-test "myvalue" "=" "$v" ]
+      "importas" "out" "out"
+      bin.s6-touch "$out"
+  ];
 
 in [ basic stdin wrapWithVar ]
diff --git a/pkgs/profpatsch/execline/run-execline.nix b/pkgs/profpatsch/execline/run-execline.nix
index 8983dc8e..2efe43d6 100644
--- a/pkgs/profpatsch/execline/run-execline.nix
+++ b/pkgs/profpatsch/execline/run-execline.nix
@@ -1,17 +1,18 @@
 { stdenv, bin, lib }:
-{ name
-# the execline script as a nested list of string,
-# representing the blocks;
-# see docs of `escapeExecline`.
-, execline
+name:
+{
 # a string to pass as stdin to the execline script
-, stdin ? ""
+stdin ? ""
 # a program wrapping the acutal execline invocation;
 # should be in Bernstein-chaining style
 , builderWrapper ? bin.exec
 # additional arguments to pass to the derivation
 , derivationArgs ? {}
 }:
+# the execline script as a nested list of string,
+# representing the blocks;
+# see docs of `escapeExecline`.
+ execline:
 
 # those arguments can’t be overwritten
 assert !derivationArgs ? system;
diff --git a/pkgs/profpatsch/execline/symlink.nix b/pkgs/profpatsch/execline/symlink.nix
index 83cb710c..c6a311d8 100644
--- a/pkgs/profpatsch/execline/symlink.nix
+++ b/pkgs/profpatsch/execline/symlink.nix
@@ -11,9 +11,7 @@ let
     "${toString (builtins.stringLength s)}:${s},";
 
 in
-runExecline {
-  inherit name;
-
+runExecline name {
   derivationArgs = {
     pathTuples = lib.concatMapStrings
       ({dest, orig}: toNetstring
@@ -23,28 +21,26 @@ runExecline {
     # bah! coreutils just for cat :(
     PATH = lib.makeBinPath [ s6-portable-utils ];
   };
+} [
+  "importas" "-ui" "p" "pathTuplesPath"
+  "importas" "-ui" "out" "out"
+  "forbacktickx" "-d" "" "destorig" [ "${coreutils}/bin/cat" "$p" ]
+    "importas" "-ui" "do" "destorig"
+    "multidefine" "-d" "" "$do" [ "destsuffix" "orig" ]
+    "define" "dest" ''''${out}/''${destsuffix}''
 
-  execline = [
-    "importas" "-ui" "p" "pathTuplesPath"
-    "importas" "-ui" "out" "out"
-    "forbacktickx" "-d" "" "destorig" [ "${coreutils}/bin/cat" "$p" ]
-      "importas" "-ui" "do" "destorig"
-      "multidefine" "-d" "" "$do" [ "destsuffix" "orig" ]
-      "define" "dest" ''''${out}/''${destsuffix}''
-
-      # this call happens for every file, not very efficient
-      "foreground" [
-        "backtick" "-n" "d" [ "s6-dirname" "$dest" ]
-        "importas" "-ui" "d" "d"
-        "s6-mkdir" "-p" "$d"
-      ]
+    # this call happens for every file, not very efficient
+    "foreground" [
+      "backtick" "-n" "d" [ "s6-dirname" "$dest" ]
+      "importas" "-ui" "d" "d"
+      "s6-mkdir" "-p" "$d"
+    ]
 
-      "ifthenelse" [ "s6-test" "-L" "$orig" ] [
-        "backtick" "-n" "res" [ "s6-linkname" "-f" "$orig" ]
-        "importas" "-ui" "res" "res"
-        "s6-ln" "-fs" "$res" "$dest"
-      ] [
-        "s6-ln" "-fs" "$orig" "$dest"
-      ]
-  ];
-}
+    "ifthenelse" [ "s6-test" "-L" "$orig" ] [
+      "backtick" "-n" "res" [ "s6-linkname" "-f" "$orig" ]
+      "importas" "-ui" "res" "res"
+      "s6-ln" "-fs" "$res" "$dest"
+    ] [
+      "s6-ln" "-fs" "$orig" "$dest"
+    ]
+]