Files
acms/default.nix
2024-05-31 11:54:36 +02:00

44 lines
1.3 KiB
Nix

{ pkgs ? import sources.nixpkgs { }
, sources ? import ./nix/sources.nix
}:
let
haskellPackages = pkgs.haskell.packages.ghc98.override {
overrides = self: super: {
astore = self.callCabal2nix "astore" sources.json2sql { };
autotypes = self.callCabal2nix "autotypes" ./autotypes { };
backend = self.callCabal2nix "backend" ./backend { };
frontend = self.callCabal2nix "frontend" ./frontend { };
websockets = pkgs.haskell.lib.doJailbreak super.websockets;
};
};
jsHaskellPackages = pkgs.pkgsCross.ghcjs.haskell.packages.ghc98.override {
overrides = self: super: {
frontend = self.callCabal2nix "frontend" ./frontend { };
};
};
in
rec {
inherit (haskellPackages) backend;
inherit (jsHaskellPackages) frontend;
shell = haskellPackages.shellFor {
packages = _: [
haskellPackages.autotypes
haskellPackages.backend
haskellPackages.frontend
];
buildInputs = [
haskellPackages.cabal-install
haskellPackages.ormolu
(pkgs.writeScriptBin "reload" ''
set -efu
${haskellPackages.ghcid.bin}/bin/ghcid -c \
'${haskellPackages.cabal-install}/bin/cabal new-repl' \
-T ':run Main.main'
'')
];
withHoogle = true;
withHaddock = true;
};
}