dotfiles/provision/flake.nix

33 lines
1.1 KiB
Nix
Raw Normal View History

2023-07-10 17:52:34 -07:00
{
2024-07-21 16:53:06 -07:00
description = "Flake to manage my nixos machines";
2023-07-10 17:52:34 -07:00
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
2024-07-21 16:53:06 -07:00
agenix.url = "github:ryantm/agenix";
2024-09-26 20:02:03 -07:00
home-manager.url = github:nix-community/home-manager;
home-manager.inputs.nixpkgs.follows = "nixpkgs";
jovian-nixos.url = "git+https://github.com/Jovian-Experiments/Jovian-NixOS?ref=development";
jovian-nixos.flake = false;
2024-09-27 15:25:33 -07:00
nixos-wsl.url = "github:nix-community/NixOS-WSL";
nixos-wsl.inputs.nixpkgs.follows = "nixpkgs";
2023-07-10 17:52:34 -07:00
};
2024-09-27 15:25:33 -07:00
outputs = inputs @ { self, nixpkgs, home-manager, jovian-nixos, agenix, nixos-wsl, ... }:
2024-07-21 16:53:06 -07:00
let
system = "x86_64-linux";
hosts = builtins.fromJSON (builtins.readFile ./hosts.json);
2024-09-26 20:02:03 -07:00
lib = nixpkgs.lib;
2024-07-21 16:53:06 -07:00
in {
nixosConfigurations = lib.mapAttrs (hostname: hostConfig:
lib.nixosSystem (import ./hosts/${hostConfig.role} {
2024-09-26 20:02:03 -07:00
inherit lib;
inherit system inputs agenix home-manager jovian-nixos nixos-wsl;
specialArgs = {
user = hostConfig.user;
2024-12-21 14:31:57 -08:00
hostname = "${hostname}";
};
})
) hosts;
2024-07-21 16:53:06 -07:00
};
2023-07-10 17:52:34 -07:00
}