treewide: set defaultText for options using simple path defaults
adds defaultText for all options that set their default to a path expression using the ubiquitous `cfg` shortcut bindings.
This commit is contained in:
parent
70b105d1d0
commit
e24a8775a8
21 changed files with 79 additions and 23 deletions
|
@ -1,12 +1,13 @@
|
|||
# /etc files related to networking, such as /etc/services.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.networking;
|
||||
opt = options.networking;
|
||||
|
||||
localhostMultiple = any (elem "localhost") (attrValues (removeAttrs cfg.hosts [ "127.0.0.1" "::1" ]));
|
||||
|
||||
|
@ -78,6 +79,7 @@ in
|
|||
httpProxy = lib.mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.proxy.default;
|
||||
defaultText = literalExpression "config.${opt.proxy.default}";
|
||||
description = ''
|
||||
This option specifies the http_proxy environment variable.
|
||||
'';
|
||||
|
@ -87,6 +89,7 @@ in
|
|||
httpsProxy = lib.mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.proxy.default;
|
||||
defaultText = literalExpression "config.${opt.proxy.default}";
|
||||
description = ''
|
||||
This option specifies the https_proxy environment variable.
|
||||
'';
|
||||
|
@ -96,6 +99,7 @@ in
|
|||
ftpProxy = lib.mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.proxy.default;
|
||||
defaultText = literalExpression "config.${opt.proxy.default}";
|
||||
description = ''
|
||||
This option specifies the ftp_proxy environment variable.
|
||||
'';
|
||||
|
@ -105,6 +109,7 @@ in
|
|||
rsyncProxy = lib.mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.proxy.default;
|
||||
defaultText = literalExpression "config.${opt.proxy.default}";
|
||||
description = ''
|
||||
This option specifies the rsync_proxy environment variable.
|
||||
'';
|
||||
|
@ -114,6 +119,7 @@ in
|
|||
allProxy = lib.mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.proxy.default;
|
||||
defaultText = literalExpression "config.${opt.proxy.default}";
|
||||
description = ''
|
||||
This option specifies the all_proxy environment variable.
|
||||
'';
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
|
||||
inherit (lib) literalExpression mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
|
||||
cfg = config.hardware.system76;
|
||||
opt = options.hardware.system76;
|
||||
|
||||
kpkgs = config.boot.kernelPackages;
|
||||
modules = [ "system76" "system76-io" ] ++ (optional (versionOlder kpkgs.kernel.version "5.5") "system76-acpi");
|
||||
|
@ -60,6 +61,7 @@ in {
|
|||
|
||||
firmware-daemon.enable = mkOption {
|
||||
default = cfg.enableAll;
|
||||
defaultText = literalExpression "config.${opt.enableAll}";
|
||||
example = true;
|
||||
description = "Whether to enable the system76 firmware daemon";
|
||||
type = types.bool;
|
||||
|
@ -67,6 +69,7 @@ in {
|
|||
|
||||
kernel-modules.enable = mkOption {
|
||||
default = cfg.enableAll;
|
||||
defaultText = literalExpression "config.${opt.enableAll}";
|
||||
example = true;
|
||||
description = "Whether to make the system76 out-of-tree kernel modules available";
|
||||
type = types.bool;
|
||||
|
@ -74,6 +77,7 @@ in {
|
|||
|
||||
power-daemon.enable = mkOption {
|
||||
default = cfg.enableAll;
|
||||
defaultText = literalExpression "config.${opt.enableAll}";
|
||||
example = true;
|
||||
description = "Whether to enable the system76 power daemon";
|
||||
type = types.bool;
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.system.nixos;
|
||||
opt = options.system.nixos;
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -53,6 +54,7 @@ in
|
|||
stateVersion = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.release;
|
||||
defaultText = literalExpression "config.${opt.release}";
|
||||
description = ''
|
||||
Every once in a while, a new NixOS release may change
|
||||
configuration defaults in a way incompatible with stateful
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# This module defines global configuration for the zshell.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -9,6 +9,7 @@ let
|
|||
cfge = config.environment;
|
||||
|
||||
cfg = config.programs.zsh;
|
||||
opt = options.programs.zsh;
|
||||
|
||||
zshAliases = concatStringsSep "\n" (
|
||||
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
|
||||
|
@ -147,6 +148,7 @@ in
|
|||
|
||||
enableGlobalCompInit = mkOption {
|
||||
default = cfg.enableCompletion;
|
||||
defaultText = literalExpression "config.${opt.enableCompletion}";
|
||||
description = ''
|
||||
Enable execution of compinit call for all interactive zsh shells.
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
with lib;
|
||||
let
|
||||
cfg = config.security.acme;
|
||||
opt = options.security.acme;
|
||||
|
||||
# Used to calculate timer accuracy for coalescing
|
||||
numCerts = length (builtins.attrNames cfg.certs);
|
||||
|
@ -470,6 +471,7 @@ let
|
|||
email = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.email;
|
||||
defaultText = literalExpression "config.${opt.email}";
|
||||
description = "Contact email address for the CA to be able to reach you.";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkOption types;
|
||||
inherit (lib) literalExpression mkOption types;
|
||||
cfg = config.security.dhparams;
|
||||
opt = options.security.dhparams;
|
||||
|
||||
bitType = types.addCheck types.int (b: b >= 16) // {
|
||||
name = "bits";
|
||||
|
@ -13,6 +14,7 @@ let
|
|||
options.bits = mkOption {
|
||||
type = bitType;
|
||||
default = cfg.defaultBitSize;
|
||||
defaultText = literalExpression "config.${opt.defaultBitSize}";
|
||||
description = ''
|
||||
The bit size for the prime that is used during a Diffie-Hellman
|
||||
key exchange.
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.kubernetes;
|
||||
opt = options.services.kubernetes;
|
||||
|
||||
defaultContainerdSettings = {
|
||||
version = 2;
|
||||
|
@ -87,6 +88,7 @@ let
|
|||
description = "${prefix} certificate authority file used to connect to kube-apiserver.";
|
||||
type = types.nullOr types.path;
|
||||
default = cfg.caFile;
|
||||
defaultText = literalExpression "config.${opt.caFile}";
|
||||
};
|
||||
|
||||
certFile = mkOption {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -76,6 +76,7 @@ in
|
|||
clusterDomain = mkOption {
|
||||
description = "Use alternative domain.";
|
||||
default = config.services.kubernetes.addons.dns.clusterDomain;
|
||||
defaultText = literalExpression "config.${options.services.kubernetes.addons.dns.clusterDomain}";
|
||||
type = str;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.slurm;
|
||||
opt = options.services.slurm;
|
||||
# configuration file can be generated by http://slurm.schedmd.com/configurator.html
|
||||
|
||||
defaultUser = "slurm";
|
||||
|
@ -89,6 +90,7 @@ in
|
|||
storageUser = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.user;
|
||||
defaultText = literalExpression "config.${opt.user}";
|
||||
description = ''
|
||||
Database user name.
|
||||
'';
|
||||
|
@ -153,6 +155,7 @@ in
|
|||
controlAddr = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = cfg.controlMachine;
|
||||
defaultText = literalExpression "config.${opt.controlMachine}";
|
||||
example = null;
|
||||
description = ''
|
||||
Name that ControlMachine should be referred to in establishing a
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.etcd;
|
||||
opt = options.services.etcd;
|
||||
|
||||
in {
|
||||
|
||||
|
@ -23,6 +24,7 @@ in {
|
|||
advertiseClientUrls = mkOption {
|
||||
description = "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
|
||||
default = cfg.listenClientUrls;
|
||||
defaultText = literalExpression "config.${opt.listenClientUrls}";
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
|
@ -41,6 +43,7 @@ in {
|
|||
initialAdvertisePeerUrls = mkOption {
|
||||
description = "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
|
||||
default = cfg.listenPeerUrls;
|
||||
defaultText = literalExpression "config.${opt.listenPeerUrls}";
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
|
@ -95,18 +98,21 @@ in {
|
|||
peerCertFile = mkOption {
|
||||
description = "Cert file to use for peer to peer communication";
|
||||
default = cfg.certFile;
|
||||
defaultText = literalExpression "config.${opt.certFile}";
|
||||
type = types.nullOr types.path;
|
||||
};
|
||||
|
||||
peerKeyFile = mkOption {
|
||||
description = "Key file to use for peer to peer communication";
|
||||
default = cfg.keyFile;
|
||||
defaultText = literalExpression "config.${opt.keyFile}";
|
||||
type = types.nullOr types.path;
|
||||
};
|
||||
|
||||
peerTrustedCaFile = mkOption {
|
||||
description = "Certificate authority file to use for peer to peer communication";
|
||||
default = cfg.trustedCaFile;
|
||||
defaultText = literalExpression "config.${opt.trustedCaFile}";
|
||||
type = types.nullOr types.path;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, utils, ... }:
|
||||
{ config, lib, options, pkgs, utils, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.gitlab;
|
||||
opt = options.services.gitlab;
|
||||
|
||||
ruby = cfg.packages.gitlab.ruby;
|
||||
|
||||
|
@ -552,6 +553,7 @@ in {
|
|||
defaultForProjects = mkOption {
|
||||
type = types.bool;
|
||||
default = cfg.registry.enable;
|
||||
defaultText = literalExpression "config.${opt.registry.enable}";
|
||||
description = "If GitLab container registry should be enabled by default for projects.";
|
||||
};
|
||||
issuer = mkOption {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.mwlib;
|
||||
opt = options.services.mwlib;
|
||||
pypkgs = pkgs.python27Packages;
|
||||
|
||||
inherit (pypkgs) python mwlib;
|
||||
|
@ -96,6 +97,7 @@ in
|
|||
nslave = {
|
||||
enable = mkOption {
|
||||
default = cfg.qserve.enable;
|
||||
defaultText = literalExpression "config.${opt.qserve.enable}";
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Pulls new jobs from exactly one qserve instance
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.rippled;
|
||||
opt = options.services.rippled;
|
||||
|
||||
b2i = val: if val then "1" else "0";
|
||||
|
||||
|
@ -165,6 +166,7 @@ let
|
|||
description = "Location to store the database.";
|
||||
type = types.path;
|
||||
default = cfg.databasePath;
|
||||
defaultText = literalExpression "config.${opt.databasePath}";
|
||||
};
|
||||
|
||||
compression = mkOption {
|
||||
|
@ -177,6 +179,7 @@ let
|
|||
description = "Enable automatic purging of older ledger information.";
|
||||
type = types.nullOr (types.addCheck types.int (v: v > 256));
|
||||
default = cfg.ledgerHistory;
|
||||
defaultText = literalExpression "config.${opt.ledgerHistory}";
|
||||
};
|
||||
|
||||
advisoryDelete = mkOption {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -8,6 +8,7 @@ let
|
|||
+ optionalString (config.networking.domain != null) ".${config.networking.domain}";
|
||||
|
||||
cfg = config.services.smartd;
|
||||
opt = options.services.smartd;
|
||||
|
||||
nm = cfg.notifications.mail;
|
||||
nw = cfg.notifications.wall;
|
||||
|
@ -208,6 +209,7 @@ in
|
|||
|
||||
autodetected = mkOption {
|
||||
default = cfg.defaults.monitored;
|
||||
defaultText = literalExpression "config.${opt.defaults.monitored}";
|
||||
type = types.separatedString " ";
|
||||
description = ''
|
||||
Like <option>services.smartd.defaults.monitored</option>, but for the
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.ergo;
|
||||
opt = options.services.ergo;
|
||||
|
||||
inherit (lib) mkEnableOption mkIf mkOption optionalString types;
|
||||
inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalString types;
|
||||
|
||||
configFile = pkgs.writeText "ergo.conf" (''
|
||||
ergo {
|
||||
|
@ -92,6 +93,7 @@ in {
|
|||
group = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.user;
|
||||
defaultText = literalExpression "config.${opt.user}";
|
||||
description = "The group as which to run the Ergo node.";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{ config, options, pkgs, lib, ... }:
|
||||
let
|
||||
|
||||
inherit (lib) mkEnableOption mkIf mkOption literalExpression types optionalString;
|
||||
|
||||
cfg = config.services.quorum;
|
||||
opt = options.services.quorum;
|
||||
dataDir = "/var/lib/quorum";
|
||||
genesisFile = pkgs.writeText "genesis.json" (builtins.toJSON cfg.genesis);
|
||||
staticNodesFile = pkgs.writeText "static-nodes.json" (builtins.toJSON cfg.staticNodes);
|
||||
|
@ -23,6 +24,7 @@ in {
|
|||
group = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.user;
|
||||
defaultText = literalExpression "config.${opt.user}";
|
||||
description = "The group as which to run quorum.";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.wasabibackend;
|
||||
opt = options.services.wasabibackend;
|
||||
|
||||
inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
|
||||
inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalAttrs optionalString types;
|
||||
|
||||
confOptions = {
|
||||
BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
|
||||
|
@ -103,6 +104,7 @@ in {
|
|||
group = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.user;
|
||||
defaultText = literalExpression "config.${opt.user}";
|
||||
description = "The group as which to run the wasabibackend node.";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.epgstation;
|
||||
opt = options.services.epgstation;
|
||||
|
||||
username = config.users.users.epgstation.name;
|
||||
groupname = config.users.users.epgstation.group;
|
||||
|
@ -80,6 +81,7 @@ in
|
|||
clientSocketioPort = mkOption {
|
||||
type = types.port;
|
||||
default = cfg.socketioPort;
|
||||
defaultText = literalExpression "config.${opt.socketioPort}";
|
||||
description = ''
|
||||
Socket.io port that the web client is going to connect to. This may be
|
||||
different from <option>socketioPort</option> if EPGStation is hidden
|
||||
|
|
|
@ -4,6 +4,7 @@ let
|
|||
json = pkgs.formats.json {};
|
||||
|
||||
cfg = config.services.discourse;
|
||||
opt = options.services.discourse;
|
||||
|
||||
# Keep in sync with https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile#L5
|
||||
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
|
||||
|
@ -399,6 +400,7 @@ in
|
|||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = cfg.hostname;
|
||||
defaultText = lib.literalExpression "config.${opt.hostname}";
|
||||
description = ''
|
||||
HELO domain to use for outgoing mail.
|
||||
'';
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
{ lib, pkgs, config, options, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.peertube;
|
||||
opt = options.services.peertube;
|
||||
|
||||
settingsFormat = pkgs.formats.json {};
|
||||
configFile = settingsFormat.generate "production.json" cfg.settings;
|
||||
|
@ -212,6 +213,7 @@ in {
|
|||
enableUnixSocket = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.redis.createLocally;
|
||||
defaultText = lib.literalExpression "config.${opt.redis.createLocally}";
|
||||
description = "Use Unix socket.";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let cfg = config.services.xserver.synaptics;
|
||||
opt = options.services.xserver.synaptics;
|
||||
tapConfig = if cfg.tapButtons then enabledTapConfig else disabledTapConfig;
|
||||
enabledTapConfig = ''
|
||||
Option "MaxTapTime" "180"
|
||||
|
@ -77,24 +78,28 @@ in {
|
|||
horizTwoFingerScroll = mkOption {
|
||||
type = types.bool;
|
||||
default = cfg.twoFingerScroll;
|
||||
defaultText = literalExpression "config.${opt.twoFingerScroll}";
|
||||
description = "Whether to enable horizontal two-finger drag-scrolling.";
|
||||
};
|
||||
|
||||
vertTwoFingerScroll = mkOption {
|
||||
type = types.bool;
|
||||
default = cfg.twoFingerScroll;
|
||||
defaultText = literalExpression "config.${opt.twoFingerScroll}";
|
||||
description = "Whether to enable vertical two-finger drag-scrolling.";
|
||||
};
|
||||
|
||||
horizEdgeScroll = mkOption {
|
||||
type = types.bool;
|
||||
default = ! cfg.horizTwoFingerScroll;
|
||||
defaultText = literalExpression "! config.${opt.horizTwoFingerScroll}";
|
||||
description = "Whether to enable horizontal edge drag-scrolling.";
|
||||
};
|
||||
|
||||
vertEdgeScroll = mkOption {
|
||||
type = types.bool;
|
||||
default = ! cfg.vertTwoFingerScroll;
|
||||
defaultText = literalExpression "! config.${opt.vertTwoFingerScroll}";
|
||||
description = "Whether to enable vertical edge drag-scrolling.";
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue