chore: nf-fmt-nix

This commit is contained in:
arcnmx 2024-10-02 21:33:38 -07:00
parent 7cdcaad10d
commit d04959b11a
5 changed files with 87 additions and 44 deletions

View file

@ -72,7 +72,10 @@ in {
return = "302 https://wiki.${domain}/minecraft/"; return = "302 https://wiki.${domain}/minecraft/";
}; };
"/minecraft/map" = {xvars, ...}: let "/minecraft/map" = {xvars, ...}: let
defaultMap = if minecraft.ports.bluemap.enable then "bmap" else "dmap"; defaultMap =
if minecraft.ports.bluemap.enable
then "bmap"
else "dmap";
in { in {
return = "302 ${xvars.get.scheme}://${xvars.get.host}/minecraft/${defaultMap}/"; return = "302 ${xvars.get.scheme}://${xvars.get.host}/minecraft/${defaultMap}/";
}; };

View file

@ -1,4 +1,8 @@
{config, lib, ...}: let {
config,
lib,
...
}: let
in { in {
users = { users = {
groups.backups = { groups.backups = {

View file

@ -1,4 +1,10 @@
{pkgs, config, systemConfig, lib, ...}: let {
pkgs,
config,
systemConfig,
lib,
...
}: let
inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.modules) mkIf mkMerge mkDefault;
inherit (lib.attrsets) mapAttrs' mapAttrsToList nameValuePair; inherit (lib.attrsets) mapAttrs' mapAttrsToList nameValuePair;
inherit (lib.lists) concatMap toList; inherit (lib.lists) concatMap toList;
@ -34,7 +40,8 @@
ls = "${pkgs.coreutils}/bin/ls"; ls = "${pkgs.coreutils}/bin/ls";
tail = "${pkgs.coreutils}/bin/tail"; tail = "${pkgs.coreutils}/bin/tail";
mkLatestDb = database: ''${ls} ${mkSharedPath "plex/Databases/${database}"}* | ${tail} -n1''; mkLatestDb = database: ''${ls} ${mkSharedPath "plex/Databases/${database}"}* | ${tail} -n1'';
in concatMapStringsSep " &&\n" mkLatestDb databases; in
concatMapStringsSep " &&\n" mkLatestDb databases;
}; };
}; };
postgresql = { postgresql = {
@ -58,7 +65,14 @@
in { in {
services.restic.backups = let services.restic.backups = let
isBackup = config.networking.hostName == "hakurei"; isBackup = config.networking.hostName == "hakurei";
mkBackupB2 = name: subpath': { config, enable ? config.enable, user ? config.user or null, subpath ? subpath', compression ? "max", settings ? {} }: let mkBackupB2 = name: subpath': {
config,
enable ? config.enable,
user ? config.user or null,
subpath ? subpath',
compression ? "max",
settings ? {},
}: let
tags = [ tags = [
"infra" "infra"
"shared-${name}" "shared-${name}"
@ -72,7 +86,8 @@ in {
paths = map mkSharedPath (toList subpath); paths = map mkSharedPath (toList subpath);
extraBackupArgs = mkMerge [ extraBackupArgs = mkMerge [
(mkIf (compression != "auto") [ (mkIf (compression != "auto") [
"--compression" compression "--compression"
compression
]) ])
(concatMap (tag: ["--tag" tag]) tags) (concatMap (tag: ["--tag" tag]) tags)
]; ];
@ -82,13 +97,24 @@ in {
RandomizedDelaySec = "4h"; RandomizedDelaySec = "4h";
}; };
}; };
in mkIf (enable || isBackup) (mkMerge [ conf settings ]); in
mkIf (enable || isBackup) (mkMerge [conf settings]);
backups = mapAttrs' (subpath: service: let backups = mapAttrs' (subpath: service: let
name = replaceStrings [ "/" ] [ "-" ] subpath; name = replaceStrings ["/"] ["-"] subpath;
in nameValuePair "${name}-b2" (mkBackupB2 name subpath service)) sharedServices; in
in backups; nameValuePair "${name}-b2" (mkBackupB2 name subpath service))
sharedServices;
in
backups;
users.groups.${group} = { users.groups.${group} = {
members = mapAttrsToList (_: { config, enable ? config.enable, user ? config.user or null, ... }: mkIf (enable && user != null) user) sharedServices; members = mapAttrsToList (_: {
config,
enable ? config.enable,
user ? config.user or null,
...
}:
mkIf (enable && user != null) user)
sharedServices;
}; };
sops.secrets = let sops.secrets = let
sopsFile = mkDefault ../secrets/restic.yaml; sopsFile = mkDefault ../secrets/restic.yaml;

View file

@ -23,7 +23,8 @@
repo = "minecraft-modpack"; repo = "minecraft-modpack";
branch = "marka-${versions.majorMinor mcVersion}"; branch = "marka-${versions.majorMinor mcVersion}";
pages = true; pages = true;
packUrl = if pages packUrl =
if pages
then "https://${owner}.github.io/${repo}/pack.toml" then "https://${owner}.github.io/${repo}/pack.toml"
else "https://raw.githubusercontent.com/${owner}/${repo}/refs/heads/${branch}/pack.toml"; else "https://raw.githubusercontent.com/${owner}/${repo}/refs/heads/${branch}/pack.toml";
}; };
@ -42,12 +43,13 @@ in {
broadcast-console-to-ops = false; broadcast-console-to-ops = false;
op-permission-level = 2; op-permission-level = 2;
}; };
in mkMerge [ in
(mapDefaults props) mkMerge [
(mkIf enableDynmap { (mapDefaults props)
max-tick-time = 60000 * 12; (mkIf enableDynmap {
}) max-tick-time = 60000 * 12;
]; })
];
allowPlayers = { allowPlayers = {
katrynn = { katrynn = {
uuid = "356d8cf2-246a-4c07-b547-422aea06c0ab"; uuid = "356d8cf2-246a-4c07-b547-422aea06c0ab";
@ -99,18 +101,21 @@ in {
}; };
}; };
preStart = let preStart = let
forgeDir = { forgeDir =
neoforge = "neoforged/neoforge"; {
forge = "minecraftforge/forge"; neoforge = "neoforged/neoforge";
}.${forge}; forge = "minecraftforge/forge";
in mkMerge [ }
"${pkgs.coreutils}/bin/ln -sf $PWD/libraries/net/${forgeDir}/*/unix_args.txt $RUNTIME_DIRECTORY/unix_args.txt" .${forge};
(mkIf packwizUpdate '' in
if ! java -jar packwiz-installer-bootstrap.jar -g -s server ${modpack.packUrl}; then mkMerge [
echo "packwiz update failed" >&2 "${pkgs.coreutils}/bin/ln -sf $PWD/libraries/net/${forgeDir}/*/unix_args.txt $RUNTIME_DIRECTORY/unix_args.txt"
fi (mkIf packwizUpdate ''
'') if ! java -jar packwiz-installer-bootstrap.jar -g -s server ${modpack.packUrl}; then
]; echo "packwiz update failed" >&2
fi
'')
];
serviceConfig = { serviceConfig = {
BindPaths = [ BindPaths = [
"${backupsDir}:${cfg.dataDir}/simplebackups" "${backupsDir}:${cfg.dataDir}/simplebackups"
@ -124,15 +129,16 @@ in {
}; };
tmpfiles.rules = let tmpfiles.rules = let
inherit (config.systemd.services.minecraft-java-server.gensokyo-zone) cacheMounts; inherit (config.systemd.services.minecraft-java-server.gensokyo-zone) cacheMounts;
in mkMerge [ in
[ mkMerge [
#["d ${backupsDir} 775 ${cfg.user} ${cfg.group} - -"] [
"d ${cacheMounts."minecraft/logs".source} 750 ${cfg.user} ${cfg.group} - -" #["d ${backupsDir} 775 ${cfg.user} ${cfg.group} - -"]
"d ${cacheMounts."minecraft/mods".source} 750 ${cfg.user} ${cfg.group} - -" "d ${cacheMounts."minecraft/logs".source} 750 ${cfg.user} ${cfg.group} - -"
] "d ${cacheMounts."minecraft/mods".source} 750 ${cfg.user} ${cfg.group} - -"
(mkIf enableDynmap ["d ${cacheMounts."minecraft/dynmap".source} 750 ${cfg.user} ${cfg.group} - -"]) ]
(mkIf enableBluemap ["d ${cacheMounts."minecraft/bluemap".source} 750 ${cfg.user} ${cfg.group} - -"]) (mkIf enableDynmap ["d ${cacheMounts."minecraft/dynmap".source} 750 ${cfg.user} ${cfg.group} - -"])
]; (mkIf enableBluemap ["d ${cacheMounts."minecraft/bluemap".source} 750 ${cfg.user} ${cfg.group} - -"])
];
}; };
networking.firewall = mkIf cfg.enable { networking.firewall = mkIf cfg.enable {
interfaces.local = { interfaces.local = {

View file

@ -25,9 +25,11 @@ in {
systemd.services.plex = mkIf cfg.enable { systemd.services.plex = mkIf cfg.enable {
gensokyo-zone = { gensokyo-zone = {
sharedMounts.plex.path = mkDefault cfg.dataDir; sharedMounts.plex.path = mkDefault cfg.dataDir;
cacheMounts = mapAttrs' (name: _: nameValuePair "plex/${name}" { cacheMounts = mapAttrs' (name: _:
path = mkDefault "${cfg.dataDir}/${name}"; nameValuePair "plex/${name}" {
}) plexCaches; path = mkDefault "${cfg.dataDir}/${name}";
})
plexCaches;
}; };
# /var/lib/plex/mesa_shader_cache # /var/lib/plex/mesa_shader_cache
environment.MESA_SHADER_CACHE_DIR = mkDefault cfg.dataDir; environment.MESA_SHADER_CACHE_DIR = mkDefault cfg.dataDir;
@ -36,8 +38,10 @@ in {
ln = "${pkgs.coreutils}/bin/ln"; ln = "${pkgs.coreutils}/bin/ln";
install = "${pkgs.coreutils}/bin/install"; install = "${pkgs.coreutils}/bin/install";
# systemd doesn't seem to like spaces so use a symlink instead... # systemd doesn't seem to like spaces so use a symlink instead...
mkCacheSetup = name: { path ? "Plex Media Server/${subpath}", subpath ? name }: mkCacheSetup = name: {
''${ln} -srfT "$PLEX_DATADIR/"${escapeShellArg name} "$PLEX_DATADIR/"${escapeShellArg path}''; path ? "Plex Media Server/${subpath}",
subpath ? name,
}: ''${ln} -srfT "$PLEX_DATADIR/"${escapeShellArg name} "$PLEX_DATADIR/"${escapeShellArg path}'';
cacheSetup = mapAttrsToList mkCacheSetup (filterAttrs (_: cache: cache.path or "" != null) plexCaches); cacheSetup = mapAttrsToList mkCacheSetup (filterAttrs (_: cache: cache.path or "" != null) plexCaches);
preStartScript = pkgs.writeShellScript "plex-run-prestart" '' preStartScript = pkgs.writeShellScript "plex-run-prestart" ''
set -eu set -eu