]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - flakes/backports/flake.nix
Refactor secrets handling
[perso/Immae/Config/Nix.git] / flakes / backports / flake.nix
1 {
2 description = "Backported packages";
3
4 inputs.nixpkgs.url = "github:NixOS/nixpkgs";
5 inputs.flake-utils.url = "github:numtide/flake-utils";
6
7 outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
8 let
9 pkgs = import nixpkgs { inherit system; overlays = []; };
10 in rec {
11 packages = {
12 apprise = pkgs.apprise;
13 bitlbee-mastodon = pkgs.bitlbee-mastodon;
14 cointop = pkgs.cointop;
15 cryptpad = pkgs.cryptpad;
16 dovecot_fts-xapian = pkgs.dovecot_fts_xapian;
17 duply = pkgs.duply;
18 fiche = pkgs.fiche;
19 influxdb2 = pkgs.influxdb2;
20 mpd = pkgs.mpd;
21 mpd-small = pkgs.mpd-small;
22 pg_activity = pkgs.pg_activity;
23 signald = pkgs.signald;
24 ssh-to-age = pkgs.ssh-to-age;
25 stgit = pkgs.stgit;
26 sops = pkgs.sops;
27 telegram-cli = pkgs.telegram-cli;
28 woob = pkgs.python3Packages.woob;
29 zrepl = pkgs.zrepl;
30 };
31 legacyPackages = packages;
32 apps = {
33 apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; };
34 cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; };
35 cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; };
36 duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; };
37 fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; };
38 influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; };
39 influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; };
40 mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; };
41 mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; };
42 pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; };
43 signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; };
44 ssh-to-age = flake-utils.lib.mkApp { drv = packages.ssh-to-age; name = "ssh-to-age"; };
45 stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
46 sops = flake-utils.lib.mkApp { drv = packages.sops; name = "sops"; };
47 telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; };
48 woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; };
49 zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; };
50 };
51 }
52 ) // rec {
53 lib = {
54 overrideDeps = pkgs: package: let
55 packageDeps = builtins.attrNames package.override.__functionArgs;
56 in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}"));
57 };
58 overlays = {
59 apprise = final: prev: { apprise = self.packages."${final.system}".apprise; };
60 bitlbee-mastodon = final: prev: {
61 bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon;
62 };
63 cointop = final: prev: { cointop = self.packages."${final.system}".cointop; };
64 cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; };
65 dovecot_fts-xapian = final: prev: {
66 dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian;
67 };
68 duply = final: prev: { duply = self.packages."${final.system}".duply; };
69 fiche = final: prev: { fiche = self.packages."${final.system}".fiche; };
70 influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; };
71 mpd = final: prev: { mpd = self.packages."${final.system}".mpd; };
72 pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; };
73 signald = final: prev: { signald = self.packages."${final.system}".signald; };
74 ssh-to-age = final: prev: { ssh-to-age = self.packages."${final.system}".ssh-to-age; };
75 stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
76 sops = final: prev: { sops = self.packages."${final.system}".sops; };
77 telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; };
78 woob = final: prev: { woob = self.packages."${final.system}".woob; };
79 zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; };
80 };
81 overlay = final: prev: ({}
82 // overlays.apprise final prev
83 // overlays.bitlbee-mastodon final prev
84 // overlays.cointop final prev
85 // overlays.cryptpad final prev
86 // overlays.dovecot_fts-xapian final prev
87 // overlays.duply final prev
88 // overlays.fiche final prev
89 // overlays.influxdb2 final prev
90 // overlays.mpd final prev
91 // overlays.pg_activity final prev
92 // overlays.signald final prev
93 // overlays.ssh-to-age final prev
94 // overlays.stgit final prev
95 // overlays.sops final prev
96 // overlays.telegram-cli final prev
97 // overlays.woob final prev
98 // overlays.zrepl final prev
99 );
100
101 nixosModules = {
102 influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix");
103 mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix");
104 zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix");
105 };
106 };
107 }
108