Start migration to using flake-parts
This commit is contained in:
300
flake.nix
300
flake.nix
@@ -36,6 +36,9 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
import-tree.url = "github:vic/import-tree";
|
||||
|
||||
# Various flakes
|
||||
yazi-flavors = {
|
||||
url = "github:yazi-rs/flavors";
|
||||
@@ -61,158 +64,163 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
systems,
|
||||
...
|
||||
} @ inputs: let
|
||||
inherit (self) outputs;
|
||||
lib = nixpkgs.lib // home-manager.lib;
|
||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||
pkgsFor = lib.genAttrs (import systems) (
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
config.permittedInsecurePackages = [
|
||||
"olm-3.2.16"
|
||||
];
|
||||
warn-dirty = false;
|
||||
}
|
||||
);
|
||||
in {
|
||||
inherit lib;
|
||||
outputs = inputs:
|
||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree
|
||||
[
|
||||
./hosts
|
||||
./features-nixos
|
||||
./homes
|
||||
./features-home-manager
|
||||
# ./modules
|
||||
# ./overlays
|
||||
# ./packages
|
||||
]);
|
||||
# let
|
||||
# inherit (self) outputs;
|
||||
# lib = nixpkgs.lib // home-manager.lib;
|
||||
# forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||
# pkgsFor = lib.genAttrs (import systems) (
|
||||
# system:
|
||||
# import nixpkgs {
|
||||
# inherit system;
|
||||
# config.allowUnfree = true;
|
||||
# config.permittedInsecurePackages = [
|
||||
# "olm-3.2.16"
|
||||
# ];
|
||||
# warn-dirty = false;
|
||||
# }
|
||||
# );
|
||||
# in {
|
||||
# inherit lib;
|
||||
|
||||
nixosModules = import ./modules/nixos;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
# nixosModules = import ./modules/nixos;
|
||||
# homeManagerModules = import ./modules/home-manager;
|
||||
|
||||
overlays = import ./overlays {inherit inputs outputs;};
|
||||
# hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
||||
# overlays = import ./overlays {inherit inputs outputs;};
|
||||
# # hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
||||
|
||||
packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
|
||||
devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
|
||||
formatter = forEachSystem (pkgs: pkgs.alejandra); # nix fmt *
|
||||
# packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
|
||||
# devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
|
||||
# formatter = forEachSystem (pkgs: pkgs.alejandra); # nix fmt *
|
||||
|
||||
nixosConfigurations = {
|
||||
# Main laptop
|
||||
aspi = lib.nixosSystem {
|
||||
modules = [
|
||||
./hosts/aspi
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Piano raspberry pi
|
||||
# pianonix = lib.nixosSystem {
|
||||
# modules = [./hosts/pianonix];
|
||||
# specialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
kardorf = lib.nixosSystem {
|
||||
modules = [./hosts/kardorf];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
builder = lib.nixosSystem {
|
||||
modules = [./hosts/builder];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
# nixosConfigurations = {
|
||||
# # Main laptop
|
||||
# aspi = lib.nixosSystem {
|
||||
# modules = [
|
||||
# ./hosts/aspi
|
||||
# ];
|
||||
# specialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# # Piano raspberry pi
|
||||
# # pianonix = lib.nixosSystem {
|
||||
# # modules = [./hosts/pianonix];
|
||||
# # specialArgs = {
|
||||
# # inherit inputs outputs;
|
||||
# # };
|
||||
# # };
|
||||
# kardorf = lib.nixosSystem {
|
||||
# modules = [./hosts/kardorf];
|
||||
# specialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# builder = lib.nixosSystem {
|
||||
# modules = [./hosts/builder];
|
||||
# specialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# Standalone HM
|
||||
homeConfigurations = {
|
||||
# Main laptop
|
||||
"julian@aspi" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/aspi.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Media server (RPi)
|
||||
# "julian@pianonix" = lib.homeManagerConfiguration {
|
||||
# modules = [
|
||||
# ./homes/julian/pianonix.nix
|
||||
# ./homes/julian/hm-standalone-config.nix
|
||||
# ];
|
||||
# pkgs = pkgsFor.aarch64-linux;
|
||||
# extraSpecialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
"julian@kardorf" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/kardorf.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"julian@v3ms" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/v3ms
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"julian@quickstart" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/quickstart.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
# # Standalone HM
|
||||
# homeConfigurations = {
|
||||
# # Main laptop
|
||||
# "julian@aspi" = lib.homeManagerConfiguration {
|
||||
# modules = [
|
||||
# ./homes/julian/aspi.nix
|
||||
# ./homes/julian/hm-standalone-config.nix
|
||||
# ];
|
||||
# pkgs = pkgsFor.x86_64-linux;
|
||||
# extraSpecialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# # Media server (RPi)
|
||||
# # "julian@pianonix" = lib.homeManagerConfiguration {
|
||||
# # modules = [
|
||||
# # ./homes/julian/pianonix.nix
|
||||
# # ./homes/julian/hm-standalone-config.nix
|
||||
# # ];
|
||||
# # pkgs = pkgsFor.aarch64-linux;
|
||||
# # extraSpecialArgs = {
|
||||
# # inherit inputs outputs;
|
||||
# # };
|
||||
# # };
|
||||
# "julian@kardorf" = lib.homeManagerConfiguration {
|
||||
# modules = [
|
||||
# ./homes/julian/kardorf.nix
|
||||
# ./homes/julian/hm-standalone-config.nix
|
||||
# ];
|
||||
# pkgs = pkgsFor.x86_64-linux;
|
||||
# extraSpecialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# "julian@v3ms" = lib.homeManagerConfiguration {
|
||||
# modules = [
|
||||
# ./homes/julian/v3ms
|
||||
# ./homes/julian/hm-standalone-config.nix
|
||||
# ];
|
||||
# pkgs = pkgsFor.x86_64-linux;
|
||||
# extraSpecialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# "julian@quickstart" = lib.homeManagerConfiguration {
|
||||
# modules = [
|
||||
# ./homes/julian/quickstart.nix
|
||||
# ./homes/julian/hm-standalone-config.nix
|
||||
# ];
|
||||
# pkgs = pkgsFor.x86_64-linux;
|
||||
# extraSpecialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# deploy-rs node configuration
|
||||
deploy.nodes = {
|
||||
# pianonix = {
|
||||
# hostname = "pianonix.local";
|
||||
# profiles.system = {
|
||||
# sshUser = "root";
|
||||
# user = "root";
|
||||
# path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
||||
# confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
||||
# };
|
||||
# };
|
||||
# # deploy-rs node configuration
|
||||
# deploy.nodes = {
|
||||
# # pianonix = {
|
||||
# # hostname = "pianonix.local";
|
||||
# # profiles.system = {
|
||||
# # sshUser = "root";
|
||||
# # user = "root";
|
||||
# # path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
||||
# # confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
||||
# # };
|
||||
# # };
|
||||
|
||||
builder = {
|
||||
hostname = "builder.julian-mutter.de";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
||||
remoteBuild = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
# builder = {
|
||||
# hostname = "builder.julian-mutter.de";
|
||||
# profiles.system = {
|
||||
# sshUser = "root";
|
||||
# user = "root";
|
||||
# path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
||||
# remoteBuild = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# substitutes: nixos-generate --flake .#pianonix -f sd-aarch64 --system aarch64-linux
|
||||
pianonix-image = inputs.nixos-generators.nixosGenerate {
|
||||
system = "aarch64-linux";
|
||||
format = "sd-aarch64";
|
||||
modules = [./hosts/pianonix];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
# # substitutes: nixos-generate --flake .#pianonix -f sd-aarch64 --system aarch64-linux
|
||||
# pianonix-image = inputs.nixos-generators.nixosGenerate {
|
||||
# system = "aarch64-linux";
|
||||
# format = "sd-aarch64";
|
||||
# modules = [./hosts/pianonix];
|
||||
# specialArgs = {
|
||||
# inherit inputs outputs;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user