From 5d29a3a6861c618c094e625c9119b57dc1e7222b Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 24 Oct 2023 13:52:04 -0400 Subject: autopilot --- emacsconf-stream.el | 27 +++++++++++++++++++-------- emacsconf.el | 6 ++++-- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/emacsconf-stream.el b/emacsconf-stream.el index c37d0df..da64992 100644 --- a/emacsconf-stream.el +++ b/emacsconf-stream.el @@ -383,13 +383,14 @@ With a prefix argument (\\[universal-argument]), clear the overlay." "Generate 1-minute test videos for INFO." (interactive) (setq info (or info (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) - (let ((dir (expand-file-name "test" emacsconf-stream-asset-dir)) - (subed-default-subtitle-length 1000) - (test-length 60)) + (let* ((dir (expand-file-name "test" emacsconf-stream-asset-dir)) + (default-directory dir) + (subed-default-subtitle-length 1000) + (test-length 60)) (unless (file-directory-p dir) (make-directory dir t)) (shell-command - (format "ffmpeg -y -f lavfi -i testsrc=duration=%d:size=1280x720:rate=10 %s " + (format "ffmpeg -y -f lavfi -i testsrc=duration=%d:size=1280x720:rate=10 -i background-music.opus -shortest %s " test-length (expand-file-name "template.webm" dir))) (dolist (talk info) (with-temp-file (expand-file-name (concat (plist-get talk :file-prefix) "--main.vtt") dir) @@ -1103,8 +1104,11 @@ ffplay URL Use the display specified in TRACK. If TEST-MODE is non-nil, load the videos from the test directory." (concat - "PATH=/usr/local/bin:/usr/bin\n" - "MAILTO=\"\"\n" + (format + "PATH=/usr/local/bin:/usr/bin +MAILTO=\"\" +XDG_RUNTIME_DIR=\"/run/user/%d\" +" (plist-get track :uid)) (mapconcat (lambda (talk) (format "%s /usr/bin/screen -dmS play-%s bash -c \"DISPLAY=%s TEST_MODE=%s /usr/local/bin/handle-session %s\"\n" @@ -1131,14 +1135,21 @@ If INFO is non-nil, use that as the schedule instead." (crontab (expand-file-name (concat (plist-get track :id) ".crontab") (concat (plist-get track :tramp) "~")))) (with-temp-file crontab - (when (plist-get track :auto-pilot) + (when (plist-get track :autopilot) (insert (emacsconf-stream-format-crontab track talks test-mode)))) (emacsconf-stream-track-ssh track (concat "crontab ~/" (plist-get track :id) ".crontab")))))) (defun emacsconf-stream-cancel-crontab (track) "Remove crontab for TRACK." (interactive (list (emacsconf-complete-track))) + (plist-put track :autopilot nil) (emacsconf-stream-track-ssh track "crontab -r")) -;;; + +(defun emacsconf-stream-cancel-all-crontabs () + "Remove crontabs." + (dolist (track emacsconf-tracks) + (plist-put track :autopilot nil) + (emacsconf-stream-track-ssh track "crontab -r"))) + (provide 'emacsconf-stream) ;;; emacsconf-stream.el ends here diff --git a/emacsconf.el b/emacsconf.el index b10d194..9d70ad1 100644 --- a/emacsconf.el +++ b/emacsconf.el @@ -1260,9 +1260,10 @@ The subheading should match `emacsconf-abstract-heading-regexp'." :youtube-studio-url "https://studio.youtube.com/video/UEJ88c7MJq0/livestreaming" :toobnix-url "https://toobnix.org/w/7t9X8eXuSby8YpyEKTb4aj" :start "09:00" :end "17:00" + :uid 2002 :vnc-display ":5" :vnc-port "5905" - :auto-pilot t + :autopilot t :status "offline") (:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev" :watch "https://live.emacsconf.org/2022/watch/dev/" @@ -1273,10 +1274,11 @@ The subheading should match `emacsconf-abstract-heading-regexp'." :youtube-studio-url "https://studio.youtube.com/video/PMaoF-xa1b4/livestreaming" :stream ,(concat emacsconf-stream-base "dev.webm") :480p ,(concat emacsconf-stream-base "dev-480p.webm") + :uid 2003 :start "10:00" :end "17:00" :vnc-display ":6" :vnc-port "5906" - :auto-pilot t + :autopilot t :status "offline"))) (defun emacsconf-get-track (name) -- cgit v1.2.3