about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--machines/profpatsch/katara.nix6
-rw-r--r--pkgs/profpatsch/default.nix2
-rw-r--r--pkgs/profpatsch/utils-hs/default.nix38
3 files changed, 35 insertions, 11 deletions
diff --git a/machines/profpatsch/katara.nix b/machines/profpatsch/katara.nix
index 2c1db1be..5dbd7763 100644
--- a/machines/profpatsch/katara.nix
+++ b/machines/profpatsch/katara.nix
@@ -143,7 +143,10 @@ in {
         telnet                       # tcp debugging
         pkgs.vuizvui.profpatsch.nix-http-serve # serve nix builds and rebuild on reloads
         pkgs.vuizvui.profpatsch.nman # open man pages in temporary nix shell
-        pkgs.vuizvui.profpatsch.warpspeed # trivial http file server
+        pkgs.vuizvui.profpatsch.warpspeed    # trivial http file server
+        pkgs.vuizvui.profpatsch.nix-gen      # generate nix expressions
+        pkgs.vuizvui.profpatsch.watch-server # restart server on code change
+        pkgs.vuizvui.profpatsch.until        # restart until cmd succeeds
       ];
       documentation = [
         # mustache-spec NOT IN 16.09
@@ -204,7 +207,6 @@ in {
         redshift   # increases screen warmth at night (so i don’t have to feel cold)
         # on remove keep pdfjam!
         (texlive.combine { inherit (texlive) scheme-medium latexmk IEEEtran needspace; })
-        pkgs.vuizvui.profpatsch.nix-gen
       ];
     in systemPkgs ++ xPkgs ++ guiPkgs
     ++ programmingTools ++ documentation
diff --git a/pkgs/profpatsch/default.nix b/pkgs/profpatsch/default.nix
index ec5cce01..2fcd7c40 100644
--- a/pkgs/profpatsch/default.nix
+++ b/pkgs/profpatsch/default.nix
@@ -11,7 +11,7 @@
   };
 
   inherit (callPackage ./utils-hs {})
-    nix-gen;
+    nix-gen until watch-server;
 
   # patched version of droopy, with javascript user-enhancement
   droopy = droopy.overrideDerivation (old: {
diff --git a/pkgs/profpatsch/utils-hs/default.nix b/pkgs/profpatsch/utils-hs/default.nix
index a624e64b..8d94ba4e 100644
--- a/pkgs/profpatsch/utils-hs/default.nix
+++ b/pkgs/profpatsch/utils-hs/default.nix
@@ -4,20 +4,42 @@ let
   utilsSrc = fetchFromGitHub {
     owner = "Profpatsch";
     repo = "utils.hs";
-    rev = "7a790aff83659bc4da8f9dc5ffb9881036b80d08";
-    sha256 = "0dnsy2zcvifkl6a6l022rmxdd0mpv6qk50cd2jzgia0j90cng0ms";
+    rev = "1893da94a2feb58ddb7ad048b8e1691e4d0a4bc2";
+    sha256 = "0x7sr61gibc2wsqj1asrsfwvd0knjh9s9x3la0mplbaxdi0vzi28";
   };
+  version = "git";
 
-  nix-gen = haskellPackages.mkDerivation {
-    pname = "nix-gen";
-    version = "0.0.1";
-    src = "${utilsSrc}/nix-gen";
+  haskellDrv = { name, subfolder, deps }: haskellPackages.mkDerivation {
+    pname = name;
+    inherit version;
+    src = "${utilsSrc}/${subfolder}";
+    # TODO make utils.hs buildable from the project itself
+    # src = "${/home/philip/code/haskell/utils.hs}/${subfolder}";
     license = lib.licenses.gpl3;
     isExecutable = true;
-    buildDepends = with haskellPackages; [ hnix ansi-wl-pprint protolude data-fix ];
     hydraPlatforms = [ "x86_64-linux" ];
+    buildDepends = deps;
+  };
+
+
+  nix-gen = haskellDrv {
+    name = "nix-gen";
+    subfolder = "nix-gen";
+    deps = with haskellPackages; [ hnix ansi-wl-pprint protolude data-fix ];
+  };
+
+  until = haskellDrv {
+    name = "until";
+    subfolder = "until";
+    deps = with haskellPackages; [ optparse-applicative data-fix time];
+  };
+
+  watch-server = haskellDrv {
+    name = "watch-server";
+    subfolder = "watch-server";
+    deps = with haskellPackages; [ directory protolude fsnotify regex-tdfa optparse-generic ];
   };
 
 in {
-  inherit nix-gen;
+  inherit nix-gen until watch-server;
 }