]> git.giacomolli.uk - onechat/blob - flake.nix
Define the required code and commit rules
[onechat] / flake.nix
1 {
2 description = "OneChat";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6 systems.url = "github:nix-systems/default-linux";
7 };
8
9 outputs =
10 {
11 self,
12 nixpkgs,
13 systems,
14 }:
15 let
16 forEachSystem = nixpkgs.lib.genAttrs (import systems);
17 date = self.lastModifiedDate;
18 revision = self.shortRev or self.dirtyShortRev or "unknown";
19 version = "${builtins.substring 0 4 date}-${builtins.substring 4 2 date}-${builtins.substring 6 2 date}-${revision}";
20 in
21 {
22 packages = forEachSystem (
23 system:
24 let
25 pkgs = nixpkgs.legacyPackages.${system};
26 onechat = pkgs.callPackage ./nix/package.nix {
27 src = self;
28 inherit version;
29 };
30 in
31 {
32 inherit onechat;
33 voice-benchmark = import ./nix/voice-benchmark.nix { inherit pkgs; };
34 default = onechat;
35 }
36 );
37
38 devShells = forEachSystem (system: {
39 default = import ./nix/devshell.nix {
40 pkgs = nixpkgs.legacyPackages.${system};
41 };
42 });
43
44 checks = forEachSystem (system: {
45 package = self.packages.${system}.default;
46 replay = import ./nix/replay.nix { onechat = self.packages.${system}.default; };
47 user-service = import ./nix/user-service-check.nix {
48 pkgs = nixpkgs.legacyPackages.${system};
49 onechat = self.packages.${system}.default;
50 };
51 });
52
53 formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt);
54 };
55 }