summaryrefslogtreecommitdiff
path: root/tw/services
diff options
context:
space:
mode:
authorTimo Wilken2023-02-19 16:58:03 +0100
committerTimo Wilken2023-02-19 16:58:09 +0100
commitc9d1523eb1eef983f46e0297f6a06a03991d3a43 (patch)
treedc0dc48c7034eb81e0f1a38b9c19eef45d0919d2 /tw/services
parent9989ab2f85bafd3b1f8fdacc02fce9e3c4b7d90a (diff)
Generate separate script for yt-dlp mcron action
Diffstat (limited to 'tw/services')
-rw-r--r--tw/services/media.scm25
1 files changed, 12 insertions, 13 deletions
diff --git a/tw/services/media.scm b/tw/services/media.scm
index 910983a1..9533455e 100644
--- a/tw/services/media.scm
+++ b/tw/services/media.scm
@@ -51,19 +51,18 @@ between 01:00 and 06:00 every second night.")
(string-append (yt-dlp-configuration-media-directory config)
"/.yt-dlp/yt-dlp"))))
#~(job #$(yt-dlp-configuration-schedule config)
- (lambda ()
- (chdir #$(yt-dlp-configuration-media-directory config))
- ;; `setgid' first while we're still root
- (setgid (group:gid (getgr #$(yt-dlp-configuration-group config))))
- (setuid (passwd:uid (getpw #$(yt-dlp-configuration-user config))))
- #$@(if yt-dlp-package '()
- (list #~(system* #$yt-dlp-executable "--ignore-config" "--update")))
- (execl #$yt-dlp-executable
- "yt-dlp" "--ignore-config" "--config-location" ".yt-dlp"))
- ;; Human-readable string for `herd schedule mcron'.
- (format #f "~a --ignore-config --config-location ~a/.yt-dlp"
- #$yt-dlp-executable ; this may be a `<file-append>', so #$ it directly
- #$(yt-dlp-configuration-media-directory config))))))
+ #$(program-file
+ "yt-dlp-command"
+ #~(begin
+ (chdir #$(yt-dlp-configuration-media-directory config))
+ ;; `setgid' first while we're still root
+ (setgid (group:gid (getgr #$(yt-dlp-configuration-group config))))
+ (setuid (passwd:uid (getpw #$(yt-dlp-configuration-user config))))
+ ;; Auto-update if we're using yt-dlp from the media directory.
+ #$@(if yt-dlp-package '()
+ (list #~(system* #$yt-dlp-executable "--ignore-config" "--update")))
+ (execl #$yt-dlp-executable
+ "yt-dlp" "--ignore-config" "--config-location" ".yt-dlp")))))))
(define yt-dlp-service-type
(service-type