-
Notifications
You must be signed in to change notification settings - Fork 3
/
flake.nix
125 lines (113 loc) · 2.98 KB
/
flake.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
description = "Clipboard Manager";
inputs = {
hix.url = "git+https://git.tryp.io/tek/hix";
prelate.url = "git+https://git.tryp.io/tek/prelate";
};
outputs = { self, hix, prelate, ... }: hix.lib.pro ({config, ...}: {
depsFull = [prelate];
hackage.versionFile = "ops/version.nix";
compat.enable = false;
cabal = {
license = "BSD-2-Clause-Patent";
license-file = "LICENSE";
author = "Torsten Schmits";
prelude = {
enable = true;
package = {
name = "prelate";
version = ">=0.5 && <0.8";
};
module = "Prelate";
};
meta = {
maintainer = "[email protected]";
category = "Clipboard";
github = "tek/helic";
extra-source-files = ["readme.md" "changelog.md"];
};
ghc-options = ["-fplugin=Polysemy.Plugin"];
dependencies = [
"polysemy ^>=1.9"
"polysemy-plugin ^>=0.4"
];
};
packages.helic = {
src = ./packages/helic;
cabal = {
meta.synopsis = "Clipboard Manager";
};
library = {
enable = true;
dependencies = [
"chronos ^>=1.1.1"
"exon >=1.4 && <1.6"
"fast-logger >=3.1 && <3.3"
"gi-gdk ^>=3"
"gi-glib ^>=2"
"gi-gtk ^>=3"
"hostname ^>=1"
"optparse-applicative ^>=0.17"
"path ^>=0.9"
"path-io >=1.7 && <1.9"
"polysemy-chronos ^>=0.6"
"polysemy-conc >=0.12 && <0.14"
"polysemy-http >=0.11 && <0.14"
"polysemy-log >=0.9 && <0.11"
"polysemy-process >=0.12 && <0.14"
"polysemy-time ^>=0.6"
"servant ^>=0.19"
"servant-client ^>=0.19"
"servant-server ^>=0.19"
"table-layout ^>=0.9"
"terminal-size ^>=0.3.2.1"
"transformers"
"typed-process ^>=0.2.6"
"wai-extra ^>=3.1"
"warp ^>=3.3"
"yaml ^>=0.11"
];
};
executables.hel = {
source-dirs = "app";
};
test = {
enable = true;
dependencies = [
"chronos ^>=1.1.1"
"containers"
"exon >=1.4 && <1.6"
"network ^>=3.1"
"path ^>=0.9"
"polysemy-chronos ^>=0.6"
"polysemy-conc >=0.12 && <0.14"
"polysemy-http >=0.11 && <0.14"
"polysemy-log >=0.9 && <0.11"
"polysemy-test >=0.7 && <0.10"
"random ^>=1.2"
"tasty ^>=1.4"
"torsor ^>=0.1"
"zeugma >=0.7 && <0.10"
];
};
};
ghci = {
setup.listen = ''
:set args --verbose listen
:load Helic.Cli
import Helic.Cli (app)
'';
run.listen = "app";
};
commands.listen = {
ghci = {
enable = true;
ghcid = true;
runner = "listen";
package = "helic";
component = "app";
};
expose = true;
};
}) // { nixosModules.default = import ./ops/module.nix self; };
}