From 7e24b3619f6f7180988931d6743d2c7f2f5b8713 Mon Sep 17 00:00:00 2001 From: Anselm Schüler Date: Fri, 6 Oct 2023 12:51:23 +0200 Subject: lib/options: refactor mkPackageOption --- lib/options.nix | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/options.nix b/lib/options.nix index 30fc61c22db..7821924873d 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -201,21 +201,21 @@ rec { }: let name' = if isList name then last name else name; - in mkOption ({ - type = with lib.types; (if nullable then nullOr else lib.id) package; - description = "The ${name'} package to use." - + (if extraDescription == "" then "" else " ") + extraDescription; - } // (if default != null then let default' = if isList default then default else [ default ]; - defaultPath = concatStringsSep "." default'; + defaultText = concatStringsSep "." default'; defaultValue = attrByPath default' - (throw "${defaultPath} cannot be found in ${pkgsText}") pkgs; - in { - default = defaultValue; - defaultText = literalExpression ("${pkgsText}." + defaultPath); - } else if nullable then { - default = null; - } else { }) // lib.optionalAttrs (example != null) { + (throw "${defaultText} cannot be found in ${pkgsText}") pkgs; + defaults = if default != null then { + default = defaultValue; + defaultText = literalExpression ("${pkgsText}." + defaultText); + } else optionalAttrs nullable { + default = null; + }; + in mkOption (defaults // { + description = "The ${name'} package to use." + + (if extraDescription == "" then "" else " ") + extraDescription; + type = with lib.types; (if nullable then nullOr else lib.id) package; + } // optionalAttrs (example != null) { example = literalExpression (if isList example then "${pkgsText}." + concatStringsSep "." example else example); }); -- cgit 1.4.1