{ config, pkgs, lib, ... }: with lib; let configuration = { #Chaospott37C3Tickets = rec { # url = "https://md.chaospott.de/171s8-_cQCyX_tUca_Jxqw/download"; # target = "/media/curl/37C3"; # options = [ # "-o $( date +%H:%M:%S )-TicketPlaning.md" # ]; #}; StableConfussion = { url = "http://stable-confusion.r/outputs/"; target = "/media/curl/stable-confusion"; options = [ "--mirror" "--quiet" ]; command = "wget"; }; }; downloadScript = name: { url , options , target , command ? "curl" }: pkgs.writers.writeDash "curl-script-${name}" '' mkdir -p "${target}" cd "${target}" ${command} ${concatStringsSep " " options} "${url}" ''; in { systemd.services.curl-download = { after = [ "network.target" ]; path = [ pkgs.curl pkgs.wget ]; serviceConfig = { User = "media"; Group = "media"; }; script = (concatStringsSep "\n" (mapAttrsToList downloadScript configuration) ); }; systemd.timers.curl-download = { enable = true; wantedBy = [ "multi-user.target" ]; timerConfig = { OnCalendar = "hourly"; Persistent = "true"; }; }; }