From ee871f4e59d75366f630e65dadcd06bbec61d7d8 Mon Sep 17 00:00:00 2001 From: kurogeek Date: Wed, 5 Aug 2026 09:16:40 +0700 Subject: [PATCH] mob next [ci-skip] [ci skip] [skip ci] lastFile:flake.nix --- flake.nix | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/flake.nix b/flake.nix index 9955db8..7e1c717 100644 --- a/flake.nix +++ b/flake.nix @@ -10,12 +10,13 @@ inputs.flake-parts.follows = "clan-core/flake-parts"; outputs = - { + inputs@{ self, clan-core, nixpkgs, + flake-parts, ... - }@inputs: + }: let # Usage see: https://docs.clan.lol clan = clan-core.lib.clan { @@ -38,38 +39,31 @@ "age-plugin-fido2-hmac" ]; }; - + in + flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; - forAllSystems = nixpkgs.lib.genAttrs systems; - pkgsFor = system: clan-core.inputs.nixpkgs.legacyPackages.${system}; - treefmtFor = system: inputs.treefmt-nix.lib.evalModule (pkgsFor system) ./fmt.nix; - in - { - inherit (clan.config) nixosConfigurations nixosModules clanInternals; - clan = clan.config; - # `nix fmt` and the `nix flake check` formatting gate. - formatter = forAllSystems (system: (treefmtFor system).config.build.wrapper); - checks = forAllSystems (system: { - formatting = (treefmtFor system).config.build.check self; - }); + flake = { + inherit (clan.config) nixosConfigurations nixosModules clanInternals; + clan = clan.config; + }; - # Add the Clan cli tool to the dev shell. - # Use "nix develop" to enter the dev shell. - devShells = forAllSystems ( - system: + perSystem = + { system, ... }: let + pkgs = clan-core.inputs.nixpkgs.legacyPackages.${system}; + treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs ./fmt.nix; clanCli = clan-core.packages.${system}.clan-cli; # `clan machines update a b c` normally runs machines in parallel, # which interleaves their output and buries the YubiKey PIN prompts. # This wrapper (first in PATH) runs them one at a time instead; any # flags fall through to the real CLI untouched. - clanSequential = (pkgsFor system).writeShellScriptBin "clan" '' + clanSequential = pkgs.writeShellScriptBin "clan" '' if [ "$#" -gt 3 ] && [ "$1" = machines ] && [ "$2" = update ]; then shift 2 for arg in "$@"; do @@ -86,14 +80,19 @@ ''; in { - default = (pkgsFor system).mkShell { + # `nix fmt` and the `nix flake check` formatting gate. + formatter = treefmtEval.config.build.wrapper; + checks.formatting = treefmtEval.config.build.check self; + + # Add the Clan cli tool to the dev shell. + # Use "nix develop" to enter the dev shell. + devShells.default = pkgs.mkShell { packages = [ clanSequential clanCli - (treefmtFor system).config.build.wrapper + treefmtEval.config.build.wrapper ]; }; - } - ); + }; }; }