From 14e3c6a61f7727e994c4e1cf2568a3e606f84648 Mon Sep 17 00:00:00 2001
From: Ben Sima <ben@bsima.me>
Date: Sat, 27 Jun 2020 09:20:59 -0700
Subject: hero: implement the basics of user logins

There's also a lot of refactoring/renaming in here, so the diff is really messy.
The overall problem is that I've only ever added code, I've never gone back and
reorganized/rearchitected stuff. So adding even small features is becoming an
enormous effort.

Anyway, this adds the basics of user auth. Next I need to add the auth checks
for every route that needs it, and make sure everything is back to working
correctly.
---
 nix/haskell-overlay.nix | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

(limited to 'nix/haskell-overlay.nix')

diff --git a/nix/haskell-overlay.nix b/nix/haskell-overlay.nix
index 1afea87..f37d602 100644
--- a/nix/haskell-overlay.nix
+++ b/nix/haskell-overlay.nix
@@ -1,20 +1,27 @@
 _: pkgs:
 
 let
-  cabalBuilder = self: name: self.callCabal2nix name pkgs.sources.${name} {};
+  simpleCabalBuilder = self: name:
+      self.callCabal2nix name pkgs.sources.${name} {};
+  buildCabal = self: name: subdir:
+    if isNull subdir then
+      self.callCabal2nix name pkgs.sources.${name} {}
+    else
+      self.callCabal2nix name (pkgs.sources.${name} + "/${subdir}") {};
 in
 {
   haskell = pkgs.haskell // {
     packages = pkgs.haskell.packages // {
       ghc865 = pkgs.haskell.packages.ghc865.override (old: {
         overrides = with pkgs.pkgs.haskell.lib; self: super:
-          pkgs.overridePinnedDeps (cabalBuilder self) // {
+          pkgs.overridePinnedDeps (simpleCabalBuilder self) // {
+          servant-auth = buildCabal self "servant-auth" "servant-auth";
           wai-middleware-metrics = dontCheck super.wai-middleware-metrics;
         };
       });
       ghcjs = pkgs.haskell.packages.ghcjs.override (old: {
         overrides = with pkgs.haskell.lib; self: super:
-          pkgs.overridePinnedDeps (cabalBuilder self) // {
+          pkgs.overridePinnedDeps (simpleCabalBuilder self) // {
           QuickCheck = dontCheck super.QuickCheck;
           base-compat-batteries = dontCheck super.http-types;
           clay = dontCheck super.clay;
-- 
cgit v1.2.3