/ flake.nix
flake.nix
 1  {
 2    description = "Hister - Web history on steroids";
 3  
 4    inputs = {
 5      nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
 6      flake-parts.url = "github:hercules-ci/flake-parts";
 7      flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
 8    };
 9  
10    outputs =
11      inputs:
12      inputs.flake-parts.lib.mkFlake { inherit inputs; } {
13        systems = [
14          "x86_64-linux"
15          "x86_64-darwin"
16          "aarch64-linux"
17          "aarch64-darwin"
18        ];
19  
20        perSystem =
21          {
22            config,
23            self',
24            inputs',
25            pkgs,
26            system,
27            ...
28          }:
29          let
30            histerPackage = pkgs.callPackage ./nix/package.nix { histerRev = inputs.self.rev or "unknown"; };
31          in
32          {
33            packages.default = histerPackage;
34            packages.hister = histerPackage;
35  
36            devShells.default = pkgs.mkShell {
37              packages = builtins.attrValues { inherit (pkgs) go gopls gotools; };
38            };
39          };
40  
41        flake = {
42          nixosModules.default = inputs.self.nixosModules.hister;
43          nixosModules.hister =
44            { lib, pkgs, ... }:
45            {
46              imports = [ ./nix/nixos.nix ];
47              services.hister.package = (
48                lib.mkDefault inputs.self.packages.${pkgs.stdenvNoCC.hostPlatform.system}.default
49              );
50            };
51  
52          homeModules.default = inputs.self.homeModules.hister;
53          homeModules.hister =
54            { lib, pkgs, ... }:
55            {
56              imports = [ ./nix/home.nix ];
57              services.hister.package = (
58                lib.mkDefault inputs.self.packages.${pkgs.stdenvNoCC.hostPlatform.system}.default
59              );
60            };
61  
62          darwinModules.default = inputs.self.darwinModules.hister;
63          darwinModules.hister =
64            { lib, pkgs, ... }:
65            {
66              imports = [ ./nix/darwin.nix ];
67              services.hister.package = (
68                lib.mkDefault inputs.self.packages.${pkgs.stdenvNoCC.hostPlatform.system}.default
69              );
70            };
71        };
72      };
73  }