From 00a62a9f340992216b9b26e9488f13a3bd358520 Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Tue, 25 Jan 2022 12:01:05 +0100 Subject: [PATCH] [General/Nix] Improve nix config generation to remove warnings --- general.nix | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/general.nix b/general.nix index 5400499..06cad00 100644 --- a/general.nix +++ b/general.nix @@ -5,15 +5,19 @@ let nixConfigValue = value: if value == true then "true" else if value == false then "false" - else if isList value then (toString value) + else if isList value then toString value else generators.mkValueStringDefault { } value; nixConfig = settings: (generators.toKeyValue { - listsAsDuplicateKeys = false; mkKeyValue = generators.mkKeyValueDefault { mkValueString = nixConfigValue; } " = "; - } settings); + } (filterAttrs (n: v: !( + (v == null) || + (isList v && (length v == 0)) + )) + settings) + ); in { options.aviallon.general = { @@ -36,6 +40,7 @@ in type = types.str; }; unsafeOptimizations = mkEnableOption "unsafe system tuning"; + flakes.enable = mkEnableOption "experimental flake support"; }; config = mkIf cfg.enable { @@ -97,11 +102,16 @@ in ]; nix.distributedBuilds = mkDefault false; - nix.package = (if (builtins.compareVersions pkgs.nix.version "2.4" >= 0) then pkgs.nix else pkgs.nix_2_4); + nix.package = mkIf cfg.flakes.enable (if (builtins.compareVersions pkgs.nix.version "2.4" >= 0) then pkgs.nix else pkgs.nix_2_4); nix.extraOptions = nixConfig { builders-use-substitutes = true; - experimental-features = [ "nix-command" "flakes" ]; + experimental-features = concatLists [ + (optionals cfg.flakes.enable ["nix-command" "flakes"]) + ]; + download-attempts = 5; + stalled-download-timeout = 20; }; + }; }