1
{
2
description = "Liia";
3
4
inputs = {
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
6
flake-parts.url = "github:hercules-ci/flake-parts";
7
flake-root.url = "github:srid/flake-root";
8
fenix = {
9
url = "github:nix-community/fenix";
10
inputs.nixpkgs.follows = "nixpkgs";
11
};
12
};
13
14
outputs =
15
{
16
nixpkgs,
17
fenix,
18
flake-parts,
19
flake-root,
20
...
21
}@inputs:
22
flake-parts.lib.mkFlake { inherit inputs; } {
23
imports = [
24
flake-root.flakeModule
25
];
26
systems = [
27
"aarch64-darwin"
28
"aarch64-linux"
29
"x86_64-darwin"
30
"x86_64-linux"
31
];
32
perSystem =
33
{
34
config,
35
system,
36
pkgs,
37
...
38
}:
39
let
40
callPackage = pkgs.lib.callPackageWith (
41
pkgs
42
// rec {
43
erlang = pkgs.beam_minimal.interpreters.erlang_28;
44
beamPackages = pkgs.beam_minimal.packagesWith erlang;
45
elixir = beamPackages.elixir_1_19;
46
fenixOverlays = fenix.overlays;
47
}
48
);
49
in
50
{
51
_module.args.pkgs = import nixpkgs {
52
inherit system;
53
overlays = [ fenix.overlays.default ];
54
};
55
56
formatter = pkgs.nixfmt;
57
58
packages = {
59
default = config.packages.liia;
60
61
liia = callPackage ./nix/package.nix { };
62
};
63
64
devShells = {
65
default = callPackage ./nix/shell.nix { inherit (config) flake-root; };
66
};
67
};
68
};
69
}
70