Skip to content

Helpers

All helpers are available in the module argument set (e.g. { mkStr, mkPort, ... }:). They are convenience wrappers that create lib.mkOption with nullOr types.

Schema Helpers

HelperTypeExample
mkStr defaultnullOr strmkStr "hello"
mkBool defaultnullOr boolmkBool false
mkInt defaultnullOr intmkInt 0
mkPort defaultnullOr portmkPort 22
mkPath defaultnullOr pathmkPath null
mkLines defaultnullOr linesmkLines ""
mkPackage defaultnullOr packagemkPackage null
mkRaw defaultnullOr rawmkRaw null
mkEnum values defaultnullOr (enum values)mkEnum [ "a" "b" ] "a"
mkList elemType defaultnullOr (listOf elemType)mkList lib.types.str null
mkAttrsOf valType defaultnullOr (attrsOf valType)mkAttrsOf lib.types.str null
mkEither a b defaultnullOr (either a b)mkEither lib.types.str lib.types.int null
mkOneOf types defaultnullOr (oneOf types)mkOneOf [ lib.types.str lib.types.int ] null
mkSub optionssubmodulemkSub { name = mkStr null; }
mkSubList optionslistOf submodulemkSubList { host = mkStr null; }

Every nullOr helper accepts null as a valid value, which makes all schema options optional by default.