|
3 | 3 |
|
4 | 4 | inputs = {
|
5 | 5 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
| 6 | + |
| 7 | + # NOTE: This is only to deduplicate inputs |
| 8 | + flake-utils = { |
| 9 | + url = "github:numtide/flake-utils"; |
| 10 | + }; |
| 11 | + |
| 12 | + nuscht-search = { |
| 13 | + url = "github:NuschtOS/search"; |
| 14 | + inputs = { |
| 15 | + nixpkgs.follows = "nixpkgs"; |
| 16 | + flake-utils.follows = "flake-utils"; |
| 17 | + }; |
| 18 | + }; |
| 19 | + |
| 20 | + catppuccin-rolling = { |
| 21 | + url = "github:catppuccin/nix"; |
| 22 | + }; |
| 23 | + |
| 24 | + catppuccin-v1_1 = { |
| 25 | + url = "https://flakehub.com/f/catppuccin/nix/1.1.*.tar.gz"; |
| 26 | + }; |
| 27 | + |
6 | 28 | nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
7 | 29 |
|
8 | 30 | home-manager = {
|
|
19 | 41 | outputs =
|
20 | 42 | {
|
21 | 43 | self,
|
| 44 | + nuscht-search, |
22 | 45 | nixpkgs,
|
23 | 46 | nixpkgs-stable,
|
24 | 47 | home-manager,
|
25 | 48 | home-manager-stable,
|
26 |
| - }: |
| 49 | + ... |
| 50 | + }@inputs: |
| 51 | + |
27 | 52 | let
|
| 53 | + inherit (nixpkgs) lib; |
28 | 54 | systems = [
|
29 | 55 | "x86_64-linux"
|
30 | 56 | "aarch64-linux"
|
|
38 | 64 | });
|
39 | 65 |
|
40 | 66 | forAllSystems = nixpkgs.lib.genAttrs systems;
|
| 67 | + |
| 68 | + # Versions of the modules we want to index in our search |
| 69 | + searchVersions = |
| 70 | + map |
| 71 | + (versionName: { |
| 72 | + inherit versionName; |
| 73 | + catppuccin = inputs."catppuccin-${lib.replaceStrings [ "." ] [ "_" ] versionName}"; |
| 74 | + }) |
| 75 | + [ |
| 76 | + "v1.1" |
| 77 | + "rolling" |
| 78 | + ]; |
41 | 79 | in
|
| 80 | + |
42 | 81 | {
|
43 |
| - apps = forAllSystems ( |
44 |
| - system: |
45 |
| - let |
46 |
| - pkgs = nixpkgsFor.${system}.unstable; |
47 |
| - inherit (pkgs) lib; |
48 |
| - in |
49 |
| - { |
50 |
| - serve = { |
51 |
| - type = "app"; |
52 |
| - program = lib.getExe self.packages.${system}.site.serve; |
53 |
| - }; |
54 |
| - } |
55 |
| - ); |
| 82 | + apps = forAllSystems (system: { |
| 83 | + serve = { |
| 84 | + type = "app"; |
| 85 | + program = lib.getExe self.packages.${system}.site.serve; |
| 86 | + }; |
| 87 | + }); |
56 | 88 |
|
57 | 89 | checks = forAllSystems (
|
58 | 90 | system:
|
| 91 | + |
59 | 92 | let
|
60 | 93 | pkgs = nixpkgsFor.${system};
|
61 |
| - inherit (pkgs.unstable) lib; |
62 | 94 |
|
63 | 95 | callUnstable = lib.flip pkgs.unstable.callPackage { inherit home-manager; };
|
64 | 96 | callStable = lib.flip pkgs.stable.callPackage { home-manager = home-manager-stable; };
|
65 | 97 | in
|
| 98 | + |
66 | 99 | lib.optionalAttrs pkgs.unstable.stdenv.hostPlatform.isDarwin {
|
67 | 100 | darwin-test-unstable = callUnstable ../tests/darwin.nix;
|
68 | 101 | darwin-test-stable = callStable ../tests/darwin.nix;
|
|
77 | 110 |
|
78 | 111 | packages = forAllSystems (
|
79 | 112 | system:
|
| 113 | + |
80 | 114 | let
|
81 | 115 | pkgs = nixpkgsFor.${system}.unstable;
|
82 |
| - inherit (pkgs) lib; |
83 | 116 |
|
84 |
| - version = self.shortRev or self.dirtyShortRev or "unknown"; |
85 |
| - mkOptionDoc = pkgs.callPackage ../docs/options-doc.nix { }; |
86 | 117 | mkSite = pkgs.callPackage ../docs/mk-site.nix { };
|
87 |
| - packages' = self.packages.${system}; |
88 |
| - in |
89 |
| - { |
90 |
| - nixos-doc = mkOptionDoc { |
91 |
| - inherit version; |
92 |
| - moduleRoot = ../modules/nixos; |
| 118 | + mkSearchInstance = pkgs.callPackage ../docs/mk-search.nix { |
| 119 | + inherit (nuscht-search.packages.${system}) mkMultiSearch; |
93 | 120 | };
|
94 | 121 |
|
95 |
| - home-manager-doc = mkOptionDoc { |
96 |
| - inherit version; |
97 |
| - moduleRoot = ../modules/home-manager; |
98 |
| - }; |
| 122 | + search-instances = lib.listToAttrs ( |
| 123 | + map ( |
| 124 | + { catppuccin, versionName }: |
| 125 | + { |
| 126 | + name = "search-${versionName}"; |
| 127 | + value = mkSearchInstance { inherit catppuccin versionName; }; |
| 128 | + } |
| 129 | + ) searchVersions |
| 130 | + ); |
| 131 | + in |
| 132 | + |
| 133 | + search-instances |
| 134 | + // { |
| 135 | + site = mkSite { |
| 136 | + pname = "catppuccin-nix-site"; |
| 137 | + version = self.shortRev or self.dirtyShortRev or "unknown"; |
| 138 | + |
| 139 | + src = ../docs; |
| 140 | + |
| 141 | + postPatch = "ln -sf ${inputs.catppuccin-rolling + "/CHANGELOG.md"} src/NEWS.md"; |
99 | 142 |
|
100 |
| - site = mkSite rec { |
101 |
| - pname = "catppuccin-nix-website"; |
102 |
| - inherit version; |
103 |
| - |
104 |
| - src = lib.fileset.toSource { |
105 |
| - root = ../.; |
106 |
| - fileset = lib.fileset.unions [ |
107 |
| - ../CHANGELOG.md |
108 |
| - ../docs/src |
109 |
| - ../docs/book.toml |
110 |
| - ../docs/theme |
111 |
| - ]; |
112 |
| - }; |
113 |
| - sourceRoot = "${src.name}/docs"; |
114 |
| - |
115 |
| - nixosDoc = packages'.nixos-doc; |
116 |
| - homeManagerDoc = packages'.home-manager-doc; |
| 143 | + postInstall = lib.concatLines ( |
| 144 | + [ "mkdir -p $out/search" ] |
| 145 | + ++ lib.mapAttrsToList ( |
| 146 | + name: value: "ln -s ${value.outPath} $out/${lib.replaceStrings [ "-" ] [ "/" ] name}" |
| 147 | + ) search-instances |
| 148 | + ); |
117 | 149 | };
|
118 | 150 |
|
119 | 151 | add-source =
|
|
133 | 165 | chmod 755 $out/bin/add-source
|
134 | 166 | '';
|
135 | 167 |
|
136 |
| - default = packages'.site; |
| 168 | + default = self.packages.${system}.site; |
137 | 169 | }
|
138 | 170 | );
|
139 | 171 | };
|
|
0 commit comments