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