From 45c3e165c96efa0148ddedffd50f508d7dae6093 Mon Sep 17 00:00:00 2001
From: lassulus <git@lassul.us>
Date: Sun, 3 Sep 2023 11:59:53 +0200
Subject: [PATCH] l radio: add watcher

---
 lass/2configs/services/radio/default.nix | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/lass/2configs/services/radio/default.nix b/lass/2configs/services/radio/default.nix
index 5accfe360..5a10b5578 100644
--- a/lass/2configs/services/radio/default.nix
+++ b/lass/2configs/services/radio/default.nix
@@ -104,6 +104,22 @@ in {
     print_current
   ];
 
+
+  systemd.services.radio_watcher = {
+    wantedBy = [ "multi-user.target" ];
+    after = [ "radio.service" ];
+    serviceConfig = {
+      ExecStart = pkgs.writers.writeDash "radio_watcher" ''
+        set -efux
+        while :; do
+          ${pkgs.curl}/bin/curl -Ss http://localhost:8000/radio.ogg -o /dev/null
+          ${pkgs.systemd}/bin/systemctl restart radio
+          sleep 60
+        done
+      '';
+    };
+  };
+
   services.liquidsoap.streams.radio = ./radio.liq;
   systemd.services.radio = {
     environment = {
@@ -124,6 +140,7 @@ in {
     };
     path = [
       pkgs.yt-dlp
+      pkgs.bubblewrap
     ];
     serviceConfig.User = lib.mkForce "radio";
   };
@@ -163,6 +180,7 @@ in {
       filter.INPUT.rules = [
         { predicate = "-p tcp --dport 8000"; target = "ACCEPT"; }
         { predicate = "-i retiolum -p tcp --dport 8001"; target = "ACCEPT"; }
+        { predicate = "-i retiolum -p tcp --dport 8002"; target = "ACCEPT"; }
       ];
     };
   };