utils/test/flake.nix

116 lines
2.8 KiB
Nix
Raw Normal View History

2025-10-04 17:32:44 +02:00
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
disko.url = "github:nix-community/disko";
nixos-wsl.url = "github:nix-community/nixos-wsl";
nix-darwin.url = "github:lnl7/nix-darwin";
};
outputs = {...} @ inputs: let
lib = import ../lib {inherit (inputs.nixpkgs) lib;};
pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux;
in rec {
nixosConfigurations = {
"nixos-server" = lib.mkSystem {
ren = {
system = "aarch64-linux";
inherit pkgs;
inherit (inputs) home-manager disko;
};
networking.hostName = "nixos-server";
users.users."demo" = {
home = "/home/demo";
isNormalUser = true;
group = "example";
};
users.groups."example" = {};
disko.devices = pkgs.lib.mkMerge [
diskoConfigurations.some-disk.innerConfig
];
home-manager = {
useUserPackages = false;
useGlobalPkgs = true;
users.demo = homeConfigurations."demo-standalone".innerConfig;
};
};
"nixos-wsl" = lib.mkSystem {
ren = {
system = "x86_64-linux";
inherit pkgs;
inherit (inputs) nixos-wsl;
};
wsl.defaultUser = "demo";
};
};
darwinConfigurations = {
"my-macbook" = lib.mkSystem {
ren = {
system = "aarch64-darwin";
inherit pkgs;
inherit (inputs) nix-darwin;
};
system.stateVersion = 6;
users.users.demo.home = "/Users/demo";
};
};
diskoConfigurations = {
"some-disk" = lib.mkDisk {
disk = {
sda = {
device = "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
attributes = [0];
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
ren = {
inherit pkgs;
inherit (inputs) disko;
};
};
};
homeConfigurations = {
"demo-standalone" = lib.mkHome {
ren = rec {
system = "x86_64-linux";
inherit (inputs) home-manager;
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
};
};
home = {
username = "demo";
homeDirectory = "/home/demo";
stateVersion = "23.11";
};
};
};
};
}