From d073496c1901b1a8c6161c45dab2555d65d95d19 Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Sat, 13 Jun 2026 14:46:47 -0500 Subject: [PATCH] feat: add check-autobrr-space script to autobrr --- .../services/apps/servarr/autobrr/default.nix | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/modules/nixos/services/apps/servarr/autobrr/default.nix b/modules/nixos/services/apps/servarr/autobrr/default.nix index f4fd2c8..e4f2d70 100644 --- a/modules/nixos/services/apps/servarr/autobrr/default.nix +++ b/modules/nixos/services/apps/servarr/autobrr/default.nix @@ -36,16 +36,49 @@ in { }; }; - services.autobrr.serviceConfig = let + services.autobrr = let autobrrUser = config.users.users.autobrr; + + checkAutobrrSpace = pkgs.writeShellScriptBin "check-autobrr-space" '' + set -euo pipefail + + required_space=$((250 * 1024 * 1024)) + path="/var/lib/qBittorrent/qBittorrent/downloads/autobrr" + + available_space=$(${pkgs.coreutils}/bin/df "$path" | \ + ${pkgs.gawk}/bin/awk 'END {print $4}') + + [ "$available_space" -gt "$required_space" ] + ''; in { - DynamicUser = mkForce false; - User = autobrrUser.name; - Group = autobrrUser.group; - UMask = mkForce "0002"; + path = [checkAutobrrSpace]; + serviceConfig = { + DynamicUser = mkForce false; + User = autobrrUser.name; + Group = autobrrUser.group; + UMask = mkForce "0002"; + }; }; }; + environment.systemPackages = [ + (pkgs.writeShellScriptBin "check-autobrr-space" '' + set -euo pipefail + + required_space=$((250 * 1024 * 1024)) + path="/var/lib/qBittorrent/qBittorrent/downloads/autobrr" + + available_space=$(${pkgs.coreutils}/bin/df "$path" | \ + ${pkgs.gawk}/bin/awk 'END {print $4}') + + if [ "$available_space" -le "$required_space" ]; then + exit 1 + fi + + exit 0 + '') + ]; + sops.secrets = { "autobrr" = { owner = config.users.users.autobrr.name;