about summary refs log tree commit diff
path: root/pkgs/profpatsch/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/profpatsch/default.nix')
-rw-r--r--pkgs/profpatsch/default.nix13
1 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/profpatsch/default.nix b/pkgs/profpatsch/default.nix
index f484c2ad..e246bd29 100644
--- a/pkgs/profpatsch/default.nix
+++ b/pkgs/profpatsch/default.nix
@@ -35,6 +35,17 @@ let
     bin = getBins pkgs.s6PortableUtils [ "s6-touch" "s6-echo" ];
   };
 
+  # TODO: upstream
+  writeHaskellInterpret = nameOrPath: { withPackages ? lib.const [] }: content:
+    let ghc = pkgs.haskellPackages.ghcWithPackages withPackages; in
+    pkgs.writers.makeScriptWriter {
+      interpreter = "${ghc}/bin/runhaskell";
+      check = pkgs.writers.writeDash "ghc-typecheck" ''
+        ln -s "$1" ./Main.hs
+        ${ghc}/bin/ghc -fno-code -Wall ./Main.hs
+      '';
+    } nameOrPath content;
+
   runExeclineFns =
     # todo: factor out calling tests
     let
@@ -101,7 +112,7 @@ in rec {
     inherit (pkgs.haskellPackages) ghcWithPackages;
   };
   youtube2audiopodcast = callPackage ./youtube2audiopodcast {
-    inherit writeExecline getBins runInEmptyEnv sandbox;
+    inherit writeExecline writeHaskellInterpret getBins runInEmptyEnv sandbox;
   };
 
   inherit (callPackage ./utils-hs {})