Use the "assertions" option instead of mkAssert
This commit is contained in:
parent
c7171b2c8f
commit
244cf195c8
@ -24,12 +24,12 @@ with pkgs.lib;
|
|||||||
};
|
};
|
||||||
|
|
||||||
listenAddress = mkOption {
|
listenAddress = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
description = "IP address to listen on.";
|
description = "IP address to listen on.";
|
||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
default = 8080;
|
default = 8080;
|
||||||
description = "port to listen on.";
|
description = "port to listen on.";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -45,9 +45,12 @@ with pkgs.lib;
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable (
|
config = mkIf cfg.enable {
|
||||||
mkAssert (cfg.enable -> cfg.database != "")
|
|
||||||
"Must specify database name" {
|
assertions = singleton
|
||||||
|
{ assertion = cfg.enable -> cfg.database != "";
|
||||||
|
message = "Must specify 4Store database name";
|
||||||
|
};
|
||||||
|
|
||||||
users.extraUsers = singleton
|
users.extraUsers = singleton
|
||||||
{ name = endpointUser;
|
{ name = endpointUser;
|
||||||
@ -63,10 +66,10 @@ with pkgs.lib;
|
|||||||
startOn = "filesystem";
|
startOn = "filesystem";
|
||||||
|
|
||||||
exec = ''
|
exec = ''
|
||||||
${run} '${pkgs.rdf4store}/bin/4s-httpd -D ${cfg.options} ${if cfg.listenAddress!=null then "-H ${cfg.listenAddress}" else "" } -p ${toString cfg.port} ${cfg.database}'
|
${run} '${pkgs.rdf4store}/bin/4s-httpd -D ${cfg.options} ${if cfg.listenAddress!=null then "-H ${cfg.listenAddress}" else "" } -p ${toString cfg.port} ${cfg.database}'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,9 +36,12 @@ with pkgs.lib;
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable (
|
config = mkIf cfg.enable {
|
||||||
mkAssert (cfg.enable -> cfg.database != "")
|
|
||||||
"Must specify database name" {
|
assertions = singleton
|
||||||
|
{ assertion = cfg.enable -> cfg.database != "";
|
||||||
|
message = "Must specify 4Store database name.";
|
||||||
|
};
|
||||||
|
|
||||||
users.extraUsers = singleton
|
users.extraUsers = singleton
|
||||||
{ name = fourStoreUser;
|
{ name = fourStoreUser;
|
||||||
@ -56,16 +59,16 @@ with pkgs.lib;
|
|||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p ${stateDir}/
|
mkdir -p ${stateDir}/
|
||||||
chown ${fourStoreUser} ${stateDir}
|
chown ${fourStoreUser} ${stateDir}
|
||||||
if ! test -e "${stateDir}/${cfg.database}"; then
|
if ! test -e "${stateDir}/${cfg.database}"; then
|
||||||
${run} -c '${pkgs.rdf4store}/bin/4s-backend-setup ${cfg.database}'
|
${run} -c '${pkgs.rdf4store}/bin/4s-backend-setup ${cfg.database}'
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
exec = ''
|
exec = ''
|
||||||
${run} -c '${pkgs.rdf4store}/bin/4s-backend -D ${cfg.options} ${cfg.database}'
|
${run} -c '${pkgs.rdf4store}/bin/4s-backend -D ${cfg.options} ${cfg.database}'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,12 @@ in
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf config.services.openfire.enable (
|
config = mkIf config.services.openfire.enable {
|
||||||
mkAssert (!(config.services.openfire.usePostgreSQL -> config.services.postgresql.enable)) "
|
|
||||||
openfire assertion failed
|
assertions = singleton
|
||||||
" {
|
{ assertion = !(config.services.openfire.usePostgreSQL -> config.services.postgresql.enable);
|
||||||
|
message = "OpenFire assertion failed.";
|
||||||
|
};
|
||||||
|
|
||||||
jobs.openfire =
|
jobs.openfire =
|
||||||
{ description = "OpenFire XMPP server";
|
{ description = "OpenFire XMPP server";
|
||||||
@ -65,6 +67,6 @@ in
|
|||||||
''; # */
|
''; # */
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -53,9 +53,9 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
socksListenAddressFaster = mkOption {
|
socksListenAddressFaster = mkOption {
|
||||||
default = "127.0.0.1:9063";
|
default = "127.0.0.1:9063";
|
||||||
description = ''
|
description = ''
|
||||||
Same as socksListenAddress but uses weaker circuit isolation to provide
|
Same as socksListenAddress but uses weaker circuit isolation to provide
|
||||||
performance suitable for a web browser.
|
performance suitable for a web browser.
|
||||||
'';
|
'';
|
||||||
@ -227,10 +227,12 @@ in
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf (cfg.client.enable || cfg.relay.enable) (
|
config = mkIf (cfg.client.enable || cfg.relay.enable) {
|
||||||
mkAssert (cfg.relay.enable -> !(cfg.relay.isBridge && cfg.relay.isExit)) "
|
|
||||||
Can't be both an exit and a bridge relay at the same time
|
assertions = singleton
|
||||||
" {
|
{ assertion = cfg.relay.enable -> !(cfg.relay.isBridge && cfg.relay.isExit);
|
||||||
|
message = "Can't be both an exit and a bridge relay at the same time";
|
||||||
|
};
|
||||||
|
|
||||||
users.extraUsers = singleton
|
users.extraUsers = singleton
|
||||||
{ name = torUser;
|
{ name = torUser;
|
||||||
@ -270,7 +272,7 @@ in
|
|||||||
''
|
''
|
||||||
+ optionalString cfg.client.enable ''
|
+ optionalString cfg.client.enable ''
|
||||||
SOCKSPort ${cfg.client.socksListenAddress} IsolateDestAddr
|
SOCKSPort ${cfg.client.socksListenAddress} IsolateDestAddr
|
||||||
SOCKSPort ${cfg.client.socksListenAddressFaster}
|
SOCKSPort ${cfg.client.socksListenAddressFaster}
|
||||||
${opt "SocksPolicy" cfg.client.socksPolicy}
|
${opt "SocksPolicy" cfg.client.socksPolicy}
|
||||||
''
|
''
|
||||||
+ optionalString cfg.relay.enable ''
|
+ optionalString cfg.relay.enable ''
|
||||||
@ -316,6 +318,6 @@ in
|
|||||||
# Extra config goes here
|
# Extra config goes here
|
||||||
'';
|
'';
|
||||||
|
|
||||||
});
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -108,17 +108,6 @@ let
|
|||||||
''; # */
|
''; # */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
checkAgent = mkAssert (!(cfg.startOpenSSHAgent && cfg.startGnuPGAgent))
|
|
||||||
''
|
|
||||||
The OpenSSH agent and GnuPG agent cannot be started both.
|
|
||||||
Choose between `startOpenSSHAgent' and `startGnuPGAgent'.
|
|
||||||
'';
|
|
||||||
|
|
||||||
checkPolkit = mkAssert config.security.polkit.enable
|
|
||||||
"X11 requires Polkit to be enabled (‘security.polkit.enable = true’).";
|
|
||||||
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -425,7 +414,20 @@ in
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable (checkAgent (checkPolkit {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
assertions =
|
||||||
|
[ { assertion = !(cfg.startOpenSSHAgent && cfg.startGnuPGAgent);
|
||||||
|
message =
|
||||||
|
''
|
||||||
|
The OpenSSH agent and GnuPG agent cannot be started both.
|
||||||
|
Choose between `startOpenSSHAgent' and `startGnuPGAgent'.
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{ assertion = config.security.polkit.enable;
|
||||||
|
message = "X11 requires Polkit to be enabled (‘security.polkit.enable = true’).";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
boot.extraModulePackages =
|
boot.extraModulePackages =
|
||||||
optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11 ++
|
optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11 ++
|
||||||
@ -669,7 +671,7 @@ in
|
|||||||
${xrandrMonitorSections}
|
${xrandrMonitorSections}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
}));
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user