nixos/unifi: Clean up formatting

This removes "with lib", which advances #208242 a bit, and cleans up a few
formatting nits found by nixfmt.
This commit is contained in:
Lucas Bergman 2023-11-12 00:28:40 +00:00
parent 83e0b3df36
commit 2bc02c0383

View File

@ -1,16 +1,15 @@
{ config, options, lib, pkgs, utils, ... }:
with lib;
let
cfg = config.services.unifi;
stateDir = "/var/lib/unifi";
cmd = ''
@${cfg.jrePackage}/bin/java java \
${optionalString (lib.versionAtLeast (lib.getVersion cfg.jrePackage) "16")
${lib.optionalString (lib.versionAtLeast (lib.getVersion cfg.jrePackage) "16")
("--add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED "
+ "--add-opens java.base/sun.security.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED "
+ "--add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED")} \
${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \
${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
${lib.optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \
${lib.optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
-jar ${stateDir}/lib/ace.jar
'';
in
@ -18,43 +17,43 @@ in
options = {
services.unifi.enable = mkOption {
type = types.bool;
services.unifi.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Whether or not to enable the unifi controller service.
'';
};
services.unifi.jrePackage = mkOption {
type = types.package;
services.unifi.jrePackage = lib.mkOption {
type = lib.types.package;
default = if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.5") then pkgs.jdk17_headless else if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3") then pkgs.jdk11 else pkgs.jre8;
defaultText = literalExpression ''if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.5") then pkgs.jdk17_headless else if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3" then pkgs.jdk11 else pkgs.jre8'';
defaultText = lib.literalExpression ''if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.5") then pkgs.jdk17_headless else if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3" then pkgs.jdk11 else pkgs.jre8'';
description = lib.mdDoc ''
The JRE package to use. Check the release notes to ensure it is supported.
'';
};
services.unifi.unifiPackage = mkOption {
type = types.package;
services.unifi.unifiPackage = lib.mkOption {
type = lib.types.package;
default = pkgs.unifi5;
defaultText = literalExpression "pkgs.unifi5";
defaultText = lib.literalExpression "pkgs.unifi5";
description = lib.mdDoc ''
The unifi package to use.
'';
};
services.unifi.mongodbPackage = mkOption {
type = types.package;
services.unifi.mongodbPackage = lib.mkOption {
type = lib.types.package;
default = pkgs.mongodb-4_4;
defaultText = literalExpression "pkgs.mongodb";
defaultText = lib.literalExpression "pkgs.mongodb";
description = lib.mdDoc ''
The mongodb package to use. Please note: unifi7 officially only supports mongodb up until 3.6 but works with 4.4.
'';
};
services.unifi.openFirewall = mkOption {
type = types.bool;
services.unifi.openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Whether or not to open the minimum required ports on the firewall.
@ -65,8 +64,8 @@ in
'';
};
services.unifi.initialJavaHeapSize = mkOption {
type = types.nullOr types.int;
services.unifi.initialJavaHeapSize = lib.mkOption {
type = with lib.types; nullOr int;
default = null;
example = 1024;
description = lib.mdDoc ''
@ -75,8 +74,8 @@ in
'';
};
services.unifi.maximumJavaHeapSize = mkOption {
type = types.nullOr types.int;
services.unifi.maximumJavaHeapSize = lib.mkOption {
type = with lib.types; nullOr int;
default = null;
example = 4096;
description = lib.mdDoc ''
@ -87,7 +86,7 @@ in
};
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
users.users.unifi = {
isSystemUser = true;
@ -97,7 +96,7 @@ in
};
users.groups.unifi = {};
networking.firewall = mkIf cfg.openFirewall {
networking.firewall = lib.mkIf cfg.openFirewall {
# https://help.ubnt.com/hc/en-us/articles/218506997
allowedTCPPorts = [
8080 # Port for UAP to inform controller.
@ -123,8 +122,8 @@ in
serviceConfig = {
Type = "simple";
ExecStart = "${(removeSuffix "\n" cmd)} start";
ExecStop = "${(removeSuffix "\n" cmd)} stop";
ExecStart = "${(lib.removeSuffix "\n" cmd)} start";
ExecStop = "${(lib.removeSuffix "\n" cmd)} stop";
Restart = "on-failure";
TimeoutSec = "5min";
User = "unifi";
@ -166,7 +165,7 @@ in
StateDirectory = "unifi";
RuntimeDirectory = "unifi";
LogsDirectory = "unifi";
CacheDirectory= "unifi";
CacheDirectory = "unifi";
TemporaryFileSystem = [
# required as we want to create bind mounts below
@ -176,7 +175,7 @@ in
# We must create the binary directories as bind mounts instead of symlinks
# This is because the controller resolves all symlinks to absolute paths
# to be used as the working directory.
BindPaths = [
BindPaths = [
"/var/log/unifi:${stateDir}/logs"
"/run/unifi:${stateDir}/run"
"${cfg.unifiPackage}/dl:${stateDir}/dl"
@ -194,7 +193,7 @@ in
};
imports = [
(mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data" )
(mkRenamedOptionModule [ "services" "unifi" "openPorts" ] [ "services" "unifi" "openFirewall" ])
(lib.mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data")
(lib.mkRenamedOptionModule [ "services" "unifi" "openPorts" ] [ "services" "unifi" "openFirewall" ])
];
}