|
49 | 49 | } @ inputs: let |
50 | 50 | inherit (nixpkgs) lib; |
51 | 51 |
|
52 | | - # Instantiate pkgs for a given system with shared config. |
53 | | - mkPkgs = system: |
54 | | - import nixpkgs { |
55 | | - inherit system; |
56 | | - config.allowUnfree = true; |
57 | | - overlays = [inputs.nur.overlays.default]; |
58 | | - }; |
| 52 | + system = "x86_64-linux"; |
59 | 53 |
|
60 | | - # eachSystem replaces flake-utils.lib.eachDefaultSystem using the |
61 | | - eachSystem = f: |
62 | | - lib.genAttrs (import systems) f; |
63 | | - |
64 | | - mkHost = import ./lib/mkHost.nix {inherit inputs self;}; |
65 | | - |
66 | | - # Host definitions |
67 | | - hosts = { |
68 | | - nixos = mkHost { |
69 | | - hostname = "nixos"; |
70 | | - username = "anon"; |
71 | | - fullName = "Harshal Sawant"; |
72 | | - system = "x86_64-linux"; |
73 | | - bootloader = "grub"; |
74 | | - windowManager = "gnome"; |
75 | | - nixosModules = [./hosts/nixos]; |
76 | | - }; |
| 54 | + mkPkgs = sys: import nixpkgs { |
| 55 | + system = sys; |
| 56 | + config.allowUnfree = true; |
| 57 | + overlays = [ inputs.nur.overlays.default ]; |
77 | 58 | }; |
| 59 | + |
| 60 | + eachSystem = f: lib.genAttrs (import systems) f; |
| 61 | + |
| 62 | + specialArgs = { inherit inputs self system; }; |
78 | 63 | in { |
79 | | - # NixOS systems |
80 | | - nixosConfigurations = |
81 | | - lib.filterAttrs (_: v: v != null) |
82 | | - (lib.mapAttrs (_: h: h.nixos) hosts); |
83 | | - |
84 | | - # Standalone Home Manager configurations. |
85 | | - homeConfigurations = |
86 | | - lib.mapAttrs' ( |
87 | | - _: h: lib.nameValuePair "${h.meta.username}@${h.meta.hostname}" h.home |
88 | | - ) |
89 | | - hosts; |
90 | | - |
91 | | - # Dev tools |
92 | | - devShells = eachSystem (system: { |
| 64 | + nixosConfigurations.default = lib.nixosSystem { |
| 65 | + inherit system specialArgs; |
| 66 | + modules = [ |
| 67 | + ./modules/nixos |
| 68 | + inputs.home-manager.nixosModules.home-manager |
| 69 | + { |
| 70 | + home-manager = { |
| 71 | + useGlobalPkgs = true; |
| 72 | + useUserPackages = true; |
| 73 | + backupFileExtension = "backup"; |
| 74 | + extraSpecialArgs = specialArgs; |
| 75 | + users."c0d3h01".imports = [ ./modules/home ]; |
| 76 | + }; |
| 77 | + } |
| 78 | + ]; |
| 79 | + }; |
| 80 | + |
| 81 | + homeConfigurations.default = inputs.home-manager.lib.homeManagerConfiguration { |
| 82 | + pkgs = mkPkgs system; |
| 83 | + extraSpecialArgs = specialArgs; |
| 84 | + modules = [ ./modules/home ]; |
| 85 | + }; |
| 86 | + |
| 87 | + devShells = eachSystem (sys: { |
93 | 88 | default = import ./shell.nix { |
94 | | - pkgs = mkPkgs system; |
95 | | - inherit |
96 | | - ((import ./lib/formatter.nix { |
97 | | - inherit self; |
98 | | - pkgs = mkPkgs system; |
99 | | - })) |
100 | | - formatter |
101 | | - ; |
| 89 | + pkgs = mkPkgs sys; |
| 90 | + formatter = (import ./formatter.nix { inherit self; pkgs = mkPkgs sys; }).formatter; |
102 | 91 | }; |
103 | 92 | }); |
104 | 93 |
|
105 | | - formatter = eachSystem ( |
106 | | - system: |
107 | | - (import ./lib/formatter.nix { |
108 | | - inherit self; |
109 | | - pkgs = mkPkgs system; |
110 | | - }).formatter |
| 94 | + formatter = eachSystem (sys: |
| 95 | + (import ./formatter.nix { inherit self; pkgs = mkPkgs sys; }).formatter |
111 | 96 | ); |
112 | 97 |
|
113 | | - checks = eachSystem (system: { |
114 | | - formatting = |
115 | | - (import ./lib/formatter.nix { |
116 | | - inherit self; |
117 | | - pkgs = mkPkgs system; |
118 | | - }).check; |
| 98 | + checks = eachSystem (sys: { |
| 99 | + formatting = (import ./formatter.nix { inherit self; pkgs = mkPkgs sys; }).check; |
119 | 100 | }); |
120 | 101 |
|
121 | | - packages = eachSystem ( |
122 | | - system: |
123 | | - import ./lib/scripts.nix {pkgs = mkPkgs system;} |
124 | | - ); |
| 102 | + packages = eachSystem (sys: import ./scripts.nix { pkgs = mkPkgs sys; }); |
125 | 103 | }; |
126 | 104 | } |
0 commit comments