feat(flake): start using flake-parts

Deprecate `util`'s `forEachSystem` and `forEachPkgs`
Use `flake-parts`'s `mkFlake`
Export `flakeModules`
This commit is contained in:
reo101 2023-12-31 18:56:34 +02:00
parent 02f7fe0cf5
commit e832c6558a
Signed by: reo101
GPG key ID: 675AA7EF13964ACB
4 changed files with 138 additions and 99 deletions

149
flake.nix
View file

@ -7,6 +7,10 @@
url = "github:nixos/nixpkgs/nixos-unstable";
};
flake-parts = {
url = "github:hercules-ci/flake-parts";
};
# Nix on Droid
nix-on-droid = {
url = "github:t184256/nix-on-droid/release-23.05";
@ -118,98 +122,81 @@
};
outputs =
{ self
, nixpkgs
, nix-on-droid
, nix-darwin
, mac-app-util
, home-manager
, impermanence
, lib-net
, nix-monitored
, disko
, deploy-rs
, agenix
, ragenix
, agenix-rekey
, nur
, spicetify-nix
, hardware
, nix-colors
, neovim-nightly-overlay
, zig-overlay
, zls-overlay
, wired
, ...
} @ inputs:
inputs:
let
inherit (inputs) self;
inherit (self) outputs;
util = import ./util { inherit inputs outputs; };
in
{
inherit self;
inputs.flake-parts.lib.mkFlake { inherit inputs; } ({ withSystem, flake-parts-lib, ... }: {
systems = [
"aarch64-linux"
"i686-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
# Packages (`nix build`)
packages = util.forEachPkgs (pkgs:
import ./pkgs { inherit pkgs; }
);
perSystem = { pkgs, ... }: {
# Packages (`nix build`)
packages = import ./pkgs { inherit pkgs; };
# Apps (`nix run`)
apps = util.forEachPkgs (pkgs:
import ./apps { inherit pkgs; }
);
# Apps (`nix run`)
apps = import ./apps { inherit pkgs; };
# Dev Shells (`nix develop`)
devShells = util.forEachPkgs (pkgs:
import ./shells { inherit pkgs inputs outputs; }
);
# Dev Shells (`nix develop`)
devShells = import ./shells { inherit pkgs inputs outputs; };
# Formatter
formatter = util.forEachPkgs (pkgs:
pkgs.nixpkgs-fmt
);
# Templates
templates = import ./templates {
inherit inputs outputs;
# Formatter (`nix fmt`)
formatter = pkgs.nixpkgs-fmt;
};
# Overlays
overlays = import ./overlays {
inherit inputs outputs;
};
flake = {
inherit self;
# Machines
inherit (util)
machines
homeManagerMachines
nixDarwinMachines
nixOnDroidMachines
nixosMachines;
# Modules
inherit (util)
nixosModules
nixOnDroidModules
nixDarwinModules
homeManagerModules;
# Configurations
nixosConfigurations = util.autoNixosConfigurations;
nixOnDroidConfigurations = util.autoNixOnDroidConfigurations;
darwinConfigurations = util.autoDarwinConfigurations;
homeConfigurations = util.autoHomeConfigurations;
# Secrets
agenix-rekey = agenix-rekey.configure {
userFlake = self;
nodes = {
inherit (self.nixosConfigurations) jeeves;
# Templates
templates = import ./templates {
inherit inputs outputs;
};
};
# Deploy.rs nodes
deploy.nodes = util.deploy.autoNodes;
checks = util.autoChecks;
};
# Overlays
overlays = import ./overlays {
inherit inputs outputs;
};
# Machines
inherit (util)
machines
homeManagerMachines
nixDarwinMachines
nixOnDroidMachines
nixosMachines;
# Modules
inherit (util)
nixosModules
nixOnDroidModules
nixDarwinModules
homeManagerModules
flakeModules;
# Configurations
nixosConfigurations = util.autoNixosConfigurations;
nixOnDroidConfigurations = util.autoNixOnDroidConfigurations;
darwinConfigurations = util.autoDarwinConfigurations;
homeConfigurations = util.autoHomeConfigurations;
# Secrets
agenix-rekey = inputs.agenix-rekey.configure {
userFlake = self;
nodes = {
inherit (self.nixosConfigurations) jeeves;
};
};
# Deploy.rs nodes
deploy.nodes = util.deploy.autoNodes;
checks = util.autoChecks;
};
});
}