# flake.nix { inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11"; flake-parts.url = "github:hercules-ci/flake-parts"; get-flake.url = "github:ursi/get-flake"; colmena.url = "github:zhaofengli/colmena"; colmena.inputs.nixpkgs.follows = "nixpkgs"; nixos-anywhere.url = github:numtide/nixos-anywhere/main; nixos-anywhere.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs @ { self, flake-parts, nixpkgs, ... }: let inherit (nixpkgs) lib; systems = [ "x86_64-linux" "aarch64-linux" ]; in flake-parts.lib.mkFlake {inherit inputs;} { flake.colmena = lib.lists.foldl (sum: cur: lib.attrsets.recursiveUpdate sum cur) { meta.nixpkgs = import inputs.nixpkgs.outPath { system = builtins.elemAt systems 0; }; } (builtins.map (nodeName: import ./nix/os/devices/${nodeName} { repoFlake = self; }) [ "steveej-t14" "elias-e525" "vmd102066.contaboserver.net" "sj-vps-htz0.infra.stefanjunker.de" "justyna-p300" ]); # this makes nixos-anywhere work flake.nixosConfigurations = (inputs.colmena.lib.makeHive self.outputs.colmena).nodes; inherit systems; perSystem = { inputs', system, config, lib, pkgs, ... }: { imports = [ ./nix/modules/flake-parts/perSystem/default.nix ]; packages = let dcpj4110dw = pkgs.callPackage (self + /nix/pkgs/dcpj4110dw) {}; in { dcpj4110dwDriver = dcpj4110dw.driver; dcpj4110dwCupswrapper = dcpj4110dw.cupswrapper; }; formatter = pkgs.alejandra; devShells.default = import ./nix/devShells.nix {inherit inputs' pkgs;}; }; }; }