|
2 | 2 | description = "A Flake-native deployment tool for distributed NixOS and Darwin clusters."; |
3 | 3 |
|
4 | 4 | inputs = { |
5 | | - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; |
6 | | - }; |
7 | | - |
8 | | - outputs = { |
9 | | - self, |
10 | | - nixpkgs, |
11 | | - }: let |
12 | | - allSystems = [ |
13 | | - "aarch64-darwin" |
14 | | - "aarch64-linux" |
15 | | - "x86_64-darwin" |
16 | | - "x86_64-linux" |
17 | | - ]; |
18 | | - |
19 | | - forAllSystems = f: |
20 | | - nixpkgs.lib.genAttrs allSystems (system: |
21 | | - f { |
22 | | - pkgs = import self.inputs.nixpkgs { |
23 | | - inherit system; |
24 | | - }; |
25 | | - }); |
26 | | - in { |
27 | | - formatter = self.inputs.nixpkgs.lib.genAttrs allSystems (system: self.packages.${system}.formatter); |
28 | | - |
29 | | - packages = forAllSystems ({pkgs}: rec { |
30 | | - formatter = pkgs.writeShellApplication { |
31 | | - name = "formatter"; |
32 | | - |
33 | | - runtimeInputs = with pkgs; [ |
34 | | - alejandra |
35 | | - diffutils |
36 | | - findutils |
37 | | - go |
38 | | - gopls |
39 | | - nodePackages.prettier |
40 | | - shfmt |
41 | | - ]; |
42 | | - |
43 | | - text = builtins.readFile ./utils/formatter.sh; |
44 | | - }; |
45 | | - |
46 | | - nynx = pkgs.buildGoModule { |
47 | | - pname = "nynx"; |
48 | | - src = ./src; |
49 | | - vendorHash = null; |
50 | | - |
51 | | - nativeBuildInputs = with pkgs; [ |
52 | | - makeWrapper |
53 | | - ]; |
54 | | - |
55 | | - postInstall = '' |
56 | | - wrapProgram $out/bin/nynx \ |
57 | | - --prefix PATH : ${pkgs.lib.makeBinPath [pkgs.nix-eval-jobs]} |
58 | | - ''; |
| 5 | + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; |
59 | 6 |
|
60 | | - version = |
61 | | - if self ? shortRev |
62 | | - then "git-${self.shortRev}" |
63 | | - else "dev"; |
64 | | - }; |
65 | | - |
66 | | - default = nynx; |
67 | | - }); |
68 | | - |
69 | | - # darwinConfigurations = { |
70 | | - # darwintest = self.inputs.nix-darwin.lib.darwinSystem { |
71 | | - # system = "aarch64-darwin"; |
72 | | - # modules = [ |
73 | | - # { |
74 | | - # networking.hostName = "darwintest"; |
75 | | - # } |
76 | | - # ]; |
77 | | - # }; |
78 | | - # }; |
79 | | - |
80 | | - devShells = forAllSystems ({pkgs}: { |
81 | | - default = pkgs.mkShell { |
82 | | - packages = with pkgs; |
83 | | - [ |
84 | | - go |
85 | | - gopls |
86 | | - nixd |
87 | | - nodePackages.prettier |
88 | | - shfmt |
89 | | - ] |
90 | | - ++ [ |
91 | | - self.packages.${pkgs.system}.formatter |
92 | | - self.packages.${pkgs.system}.nynx |
93 | | - ]; |
94 | | - }; |
95 | | - }); |
96 | | - |
97 | | - nixosConfigurations = { |
98 | | - nixostest = self.inputs.nixpkgs.lib.nixosSystem { |
99 | | - system = "x86_64-linux"; |
100 | | - modules = [ |
101 | | - ({...}: { |
102 | | - imports = []; |
103 | | - |
104 | | - boot.loader.systemd-boot.enable = true; |
105 | | - boot.loader.efi.canTouchEfiVariables = true; |
106 | | - |
107 | | - fileSystems."/" = { |
108 | | - device = "/dev/sda1"; |
109 | | - fsType = "ext4"; |
110 | | - }; |
111 | | - |
112 | | - networking.hostName = "nixostest"; |
113 | | - services.openssh.enable = true; |
114 | | - users.users.root.initialPassword = "changeme"; |
115 | | - system.stateVersion = "25.05"; |
116 | | - }) |
117 | | - ]; |
118 | | - }; |
| 7 | + treefmt-nix = { |
| 8 | + url = "github:numtide/treefmt-nix"; |
| 9 | + inputs.nixpkgs.follows = "nixpkgs"; |
119 | 10 | }; |
120 | 11 |
|
121 | | - nynxDeployments = { |
122 | | - nixostest = { |
123 | | - hostname = "nixostest"; # Will be assumed from deployment name if not specified. |
124 | | - output = self.nixosConfigurations.nixostest.config.system.build.toplevel; |
125 | | - # type = "nixos"; # Will be inferred based on the output. |
126 | | - user = "root"; |
127 | | - }; |
| 12 | + flake-parts.url = "github:hercules-ci/flake-parts"; |
| 13 | + }; |
128 | 14 |
|
129 | | - # fortree = { |
130 | | - # output = self.inputs.nixcfg.darwinConfigurations.fortree.config.system.build.toplevel; |
131 | | - # user = "aly"; |
132 | | - # type = "darwin"; |
133 | | - # }; |
| 15 | + outputs = inputs @ {flake-parts, ...}: |
| 16 | + flake-parts.lib.mkFlake {inherit inputs;} { |
| 17 | + systems = [ |
| 18 | + "aarch64-darwin" |
| 19 | + "aarch64-linux" |
| 20 | + "x86_64-darwin" |
| 21 | + "x86_64-linux" |
| 22 | + ]; |
| 23 | + |
| 24 | + imports = [ |
| 25 | + ./flake/devShells.nix |
| 26 | + ./flake/packages.nix |
| 27 | + ./flake/treefmt.nix |
| 28 | + inputs.treefmt-nix.flakeModule |
| 29 | + ]; |
134 | 30 | }; |
135 | | - }; |
136 | 31 | } |
0 commit comments