about summary refs log tree commit diff
path: root/users/Profpatsch/cas-serve/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/Profpatsch/cas-serve/default.nix')
-rw-r--r--users/Profpatsch/cas-serve/default.nix41
1 files changed, 31 insertions, 10 deletions
diff --git a/users/Profpatsch/cas-serve/default.nix b/users/Profpatsch/cas-serve/default.nix
index 6e4bfd324233..1b4fbe03e78f 100644
--- a/users/Profpatsch/cas-serve/default.nix
+++ b/users/Profpatsch/cas-serve/default.nix
@@ -1,17 +1,38 @@
 { depot, pkgs, lib, ... }:
 
 let
-  cas-serve = pkgs.writers.writeHaskell "cas-serve"
-    {
-      libraries = [
-        pkgs.haskellPackages.wai
-        pkgs.haskellPackages.warp
-        pkgs.haskellPackages.sqlite-simple
-        depot.users.Profpatsch.my-prelude
-      ];
-      ghcArgs = [ "-threaded" ];
+  bins = depot.nix.getBins pkgs.sqlite [ "sqlite3" ];
 
-    } ./CasServe.hs;
+  cas-serve = pkgs.haskellPackages.mkDerivation {
+    pname = "cas-serve";
+    version = "0.1.0";
 
+    src = depot.users.Profpatsch.exactSource ./. [
+      ./cas-serve.cabal
+      ./CasServe.hs
+    ];
+
+    libraryHaskellDepends = [
+      pkgs.haskellPackages.pa-prelude
+      pkgs.haskellPackages.pa-label
+      pkgs.haskellPackages.ihp-hsx
+      pkgs.haskellPackages.wai
+      pkgs.haskellPackages.warp
+      pkgs.haskellPackages.sqlite-simple
+      depot.users.Profpatsch.arglib.netencode.haskell
+      depot.users.Profpatsch.netencode.netencode-hs
+    ];
+
+    isExecutable = true;
+    isLibrary = false;
+    license = lib.licenses.mit;
+  };
+
+  create-cas-database = depot.nix.writeExecline "create-cas-database" { readNArgs = 1; } [
+    bins.sqlite3
+    "$1"
+    "-init"
+    ./schema.sql
+  ];
 in
 cas-serve