-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshell.nix
63 lines (55 loc) · 2.55 KB
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{ nixpkgs ? import ./packages.nix {}, compiler ? "default", doBenchmark ? false }:
let
inherit (nixpkgs) pkgs;
f = { mkDerivation, aeson, base, base64-bytestring, bcrypt
, bloodhound, bytestring, containers, directory, dotenv
, fast-logger, filepath, hedis, hip, hpack, hslogger, http-client
, http-types, hworker, monad-control, monad-logger, mtl
, optparse-applicative, parser-combinators, persistent
, persistent-postgresql, persistent-template, safe, sendgrid-v3
, servant, servant-multipart, servant-server, stdenv, text, time
, transformers, unordered-containers, utf8-string, uuid, wai
, wai-cors, wai-extra, warp
}:
let
gitignoreSrc = pkgs.fetchFromGitHub {
owner = "hercules-ci";
repo = "gitignore.nix";
rev = "7415c4feb127845553943a3856cbc5cb967ee5e0";
sha256 = "sha256:1zd1ylgkndbb5szji32ivfhwh04mr1sbgrnvbrqpmfb67g2g3r9i";
};
inherit (import gitignoreSrc { inherit (pkgs) lib; }) gitignoreSource;
in
mkDerivation {
pname = "rfp-service";
version = "0.0.5.1";
src = gitignoreSource ./.;
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson base bcrypt bloodhound bytestring containers directory dotenv
fast-logger filepath hedis hip hslogger http-client http-types
hworker monad-control monad-logger mtl optparse-applicative
parser-combinators persistent persistent-postgresql
persistent-template safe sendgrid-v3 servant servant-multipart
servant-server text time transformers unordered-containers uuid wai
wai-cors wai-extra warp
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [
base base64-bytestring bytestring dotenv fast-logger hedis hslogger
http-types hworker monad-logger mtl optparse-applicative persistent
persistent-postgresql persistent-template text time utf8-string wai
wai-cors wai-extra warp
];
prePatch = "hpack";
description = "RFPService service";
license = stdenv.lib.licenses.mit;
};
haskellPackages = if compiler == "default"
then pkgs.haskellPackages
else pkgs.haskell.packages.${compiler};
variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;
drv = variant (haskellPackages.callPackage f {});
in
if pkgs.lib.inNixShell then drv.env else drv