-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
87 lines (68 loc) · 2.43 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
{
description = "A Discord Ship Database using Fleetyards.net.";
inputs.flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
outputs = { self, nixpkgs, ... }:
let
version = "${nixpkgs.lib.substring 0 8 self.lastModifiedDate}-${
self.shortRev or "dirty"
}";
systems =
[ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
# Memoize nixpkgs for different platforms for efficiency.
nixpkgsFor = forAllSystems (system:
import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
});
in {
overlays.fleet = final: prev: {
appsignal_nif = final.callPackage ./nix/appsignal-nif.nix { };
fleet_bot = final.callPackage ({ lib, beam, rebar3, beamPackages, appsignal_nif }:
let
packages = beam.packagesWith beam.interpreters.erlang;
pname = "fleet_bot";
src = self;
mixEnv = "prod";
mixDeps = import ./nix/mix.nix { inherit lib beamPackages; overrides = overrideDeps; };
overrideDeps = (self: super: {
gun = super.remedy_gun.override {
name = "gun";
};
cowlib = super.remedy_cowlib.override {
name = "cowlib";
};
appsignal = super.appsignal.override {
prePatch = ''
cp ${appsignal_nif}/* c_src
'';
};
credo = null;
});
in packages.mixRelease {
inherit pname version src mixEnv;
configurePhase = "";
mixNixDeps = mixDeps;
nativeBuildInputs = [ rebar3 ];
}) { };
};
overlays.default = self.overlays.fleet;
packages = forAllSystems (system: {
inherit (nixpkgsFor.${system}) fleet_bot appsignal_nif;
default = self.packages.${system}.fleet_bot;
});
legacyPackages = forAllSystems (system: nixpkgsFor.${system});
nixosModules = {
fleet_bot = import ./nix/fleet_bot.nix;
default = self.nixosModules.fleet_bot;
};
};
nixConfig = {
extra-substituters = [ "https://fleetbot.cachix.org" ];
extra-trusted-public-keys =
[ "fleetbot.cachix.org-1:LCc89Bys++LoaCDgLuO47dcIoSFlRlPvXchGkr5LJLc=" ];
};
}