Loading nixos/modules/services/network-filesystems/davfs2.nix +39 −20 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let toStr = value: if true == value then "yes" else if false == value then "no" else toString value; inherit (lib.attrsets) mapAttrsToList optionalAttrs; inherit (lib.attrsets) optionalAttrs; inherit (lib.generators) toINIWithGlobalSection; inherit (lib.lists) optional; inherit (lib.modules) mkIf; inherit (lib.options) literalExpression mkEnableOption mkOption; inherit (lib.strings) concatLines; inherit (lib.types) lines str submodule; inherit (lib.strings) escape; inherit (lib.types) attrsOf bool int lines oneOf str submodule; cfg = config.services.davfs2; format = pkgs.formats.toml { }; configFile = let settings = mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings; in pkgs.writeText "davfs2.conf" '' ${concatLines settings} escapeString = escape ["\"" "\\"]; formatValue = value: if true == value then "1" else if false == value then "0" else if builtins.isString value then "\"${escapeString value}\"" else toString value; configFile = pkgs.writeText "davfs2.conf" '' ${toINIWithGlobalSection { mkSectionName = escapeString; mkKeyValue = k: v: "${k} ${formatValue v}"; } cfg.settings} ${cfg.extraConfig} ''; in Loading Loading @@ -71,14 +76,26 @@ in settings = mkOption { type = submodule { freeformType = format.type; freeformType = let valueTypes = [ bool int str ]; in attrsOf (attrsOf (oneOf (valueTypes ++ [ (attrsOf (oneOf valueTypes)) ] ))); }; default = { }; example = literalExpression '' { kernel_fs = "coda"; globalSection = { proxy = "foo.bar:8080"; use_locks = 0; use_locks = false; }; sections = { "/media/dav" = { use_locks = true; }; "/home/otto/mywebspace" = { gui_optimize = true; }; }; } ''; description = '' Loading @@ -99,9 +116,11 @@ in environment.etc."davfs2/davfs2.conf".source = configFile; services.davfs2.settings = { globalSection = { dav_user = cfg.davUser; dav_group = cfg.davGroup; }; }; users.groups = optionalAttrs (cfg.davGroup == "davfs2") { davfs2.gid = config.ids.gids.davfs2; Loading Loading
nixos/modules/services/network-filesystems/davfs2.nix +39 −20 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let toStr = value: if true == value then "yes" else if false == value then "no" else toString value; inherit (lib.attrsets) mapAttrsToList optionalAttrs; inherit (lib.attrsets) optionalAttrs; inherit (lib.generators) toINIWithGlobalSection; inherit (lib.lists) optional; inherit (lib.modules) mkIf; inherit (lib.options) literalExpression mkEnableOption mkOption; inherit (lib.strings) concatLines; inherit (lib.types) lines str submodule; inherit (lib.strings) escape; inherit (lib.types) attrsOf bool int lines oneOf str submodule; cfg = config.services.davfs2; format = pkgs.formats.toml { }; configFile = let settings = mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings; in pkgs.writeText "davfs2.conf" '' ${concatLines settings} escapeString = escape ["\"" "\\"]; formatValue = value: if true == value then "1" else if false == value then "0" else if builtins.isString value then "\"${escapeString value}\"" else toString value; configFile = pkgs.writeText "davfs2.conf" '' ${toINIWithGlobalSection { mkSectionName = escapeString; mkKeyValue = k: v: "${k} ${formatValue v}"; } cfg.settings} ${cfg.extraConfig} ''; in Loading Loading @@ -71,14 +76,26 @@ in settings = mkOption { type = submodule { freeformType = format.type; freeformType = let valueTypes = [ bool int str ]; in attrsOf (attrsOf (oneOf (valueTypes ++ [ (attrsOf (oneOf valueTypes)) ] ))); }; default = { }; example = literalExpression '' { kernel_fs = "coda"; globalSection = { proxy = "foo.bar:8080"; use_locks = 0; use_locks = false; }; sections = { "/media/dav" = { use_locks = true; }; "/home/otto/mywebspace" = { gui_optimize = true; }; }; } ''; description = '' Loading @@ -99,9 +116,11 @@ in environment.etc."davfs2/davfs2.conf".source = configFile; services.davfs2.settings = { globalSection = { dav_user = cfg.davUser; dav_group = cfg.davGroup; }; }; users.groups = optionalAttrs (cfg.davGroup == "davfs2") { davfs2.gid = config.ids.gids.davfs2; Loading