]>
Commit | Line | Data |
---|---|---|
1 | { | |
2 | description = "immae-eu infrastructure"; | |
3 | inputs = { | |
4 | flake-parts.url = "github:hercules-ci/flake-parts"; | |
5 | # TODO: use nixos-unstable branch at some point and use the lock to keep the actual commit | |
6 | nixpkgs.url = "github:nixos/nixpkgs/062a0c5437b68f950b081bbfc8a699d57a4ee026"; | |
7 | ||
8 | s-backports.url = "path:./flakes/backports"; | |
9 | s-copanier.url = "path:./flakes/copanier"; | |
10 | s-diaspora.url = "path:./flakes/diaspora"; | |
11 | s-etherpad-lite.url = "path:./flakes/etherpad-lite"; | |
12 | s-fiche.url = "path:./flakes/fiche"; | |
13 | s-files-watcher.url = "path:./flakes/files-watcher"; | |
14 | s-grocy.url = "path:./flakes/grocy"; | |
15 | s-lib.url = "path:./flakes/lib"; | |
16 | s-mastodon.url = "path:./flakes/mastodon"; | |
17 | s-mediagoblin.url = "path:./flakes/mediagoblin"; | |
18 | s-myuids.url = "path:./flakes/myuids"; | |
19 | s-openarc.url = "path:./flakes/openarc"; | |
20 | s-opendmarc.url = "path:./flakes/opendmarc"; | |
21 | s-paste.url = "path:./flakes/paste"; | |
22 | s-peertube.url = "path:./flakes/peertube"; | |
23 | s-rsync_backup.url = "path:./flakes/rsync_backup"; | |
24 | s-secrets.url = "path:./flakes/secrets"; | |
25 | s-surfer.url = "path:./flakes/surfer"; | |
26 | s-taskwarrior-web.url = "path:./flakes/taskwarrior-web"; | |
27 | ||
28 | s-private-buildbot.url = "path:./flakes/private/buildbot"; | |
29 | s-private-openarc.url = "path:./flakes/private/openarc"; | |
30 | s-private-opendmarc.url = "path:./flakes/private/opendmarc"; | |
31 | s-private-paste.url = "path:./flakes/private/paste"; | |
32 | s-private-peertube.url = "path:./flakes/private/peertube"; | |
33 | s-private-php.url = "path:./flakes/private/php"; | |
34 | ||
35 | mypackages.url = "path:./flakes/mypackages"; | |
36 | }; | |
37 | outputs = inputs@{ self, flake-parts, mypackages, ... }: | |
38 | flake-parts.lib.mkFlake { inherit inputs; } { | |
39 | imports = [ | |
40 | (mypackages.mylibs.flakePartsAddPerSystem { name = "lib"; type = "unspecified"; }) | |
41 | (mypackages.mylibs.flakePartsAddPerSystem { name = "environments"; type = "package"; }) | |
42 | ]; | |
43 | systems = [ "x86_64-linux" ]; | |
44 | perSystem = { config, inputs', pkgs, ... }: | |
45 | { | |
46 | inherit (inputs'.mypackages) packages environments lib; | |
47 | }; | |
48 | flake = { | |
49 | inherit (mypackages) mylibs sources overlays; | |
50 | subflakes = let | |
51 | flakeNames = builtins.map (a: builtins.substring 2 (builtins.stringLength a) a) (builtins.filter (a: builtins.substring 0 2 a == "s-") (builtins.attrNames inputs)); | |
52 | partitionned = builtins.partition (a: builtins.substring 0 8 a == "private-") flakeNames; | |
53 | privateFlakes = builtins.map (a: builtins.substring 8 (builtins.stringLength a) a) partitionned.right; | |
54 | publicFlakes = partitionned.wrong; | |
55 | in { | |
56 | public = builtins.foldl' (a: b: a // { "${b}" = inputs."s-${b}"; }) {} publicFlakes; | |
57 | private = builtins.foldl' (a: b: a // { "${b}" = inputs."s-private-${b}"; }) {} privateFlakes; | |
58 | }; | |
59 | }; | |
60 | }; | |
61 | } |