{ description = "sfos (self-host os)"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:NixOS/nixpkgs/master"; nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; systems.url = "github:nix-systems/default"; colmena = { url = "github:zhaofengli/colmena"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; devenv.url = "github:cachix/devenv"; nix-editor = { url = "github:snowfallorg/nix-editor"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; ess = { url = "github:acaloiaro/ess/v2.13.0"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { agenix, colmena, devenv, disko, nixpkgs, nix-editor, self, systems, ... }: let lib = nixpkgs.lib; pkgs = nixpkgs.legacyPackages."x86_64-linux"; forEachSystem = nixpkgs.lib.genAttrs (import systems); in { inherit lib; colmenaHive = colmena.lib.makeHive self.outputs.colmena; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ inputs.agenix.overlays.default ]; }; specialArgs = { inherit self; inherit inputs; inherit (inputs) agenix; }; }; sfos-0 = ./hosts/sfos-0; sfos-1 = ./hosts/sfos-1; sfos-2 = ./hosts/sfos-2; }; devShells = forEachSystem (system: let config = self.devShells.${system}.default.config; in { default = devenv.lib.mkShell { inherit inputs pkgs; modules = [ { languages = { nix.enable = true; }; packages = with pkgs; [ inputs.nix-editor.packages.${system}.default inputs.colmena.packages.${system}.colmena jq opentofu pre-commit ]; enterShell = #bash '' run-show-help ''; pre-commit.hooks.env-sample-sync = { enable = true; always_run = true; pass_filenames = false; name = "env-sample-sync"; description = "Sync secrets to env.sample"; entry = "${inputs.ess.packages.${system}.default}/bin/ess"; }; scripts = { run-show-help = { description = "Show this help text"; exec = '' echo echo Helper scripts available: echo ${pkgs.gnused}/bin/sed -e 's| |XX|g' \ -e 's|=| |' <