#!/usr/bin/env -S ros -Q --
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
(progn ;;init forms
  (ros:ensure-asdf)
  #+quicklisp(ql:quickload '(uiop) :silent t))

(defpackage :playvid
  (:use :cl))
(in-package :playvid)

(defun main (&rest argv)
 (let* ((vidfile (or (uiop:parse-native-namestring (car argv))
                  (let ((dir (uiop:directory-files ".")))
                   (nth (random (length dir) (make-random-state t)) dir))))
        (basename (pathname-name vidfile)))
  (format t "playing video: ~a~%" basename)
  (uiop:run-program (list "mpv" (uiop:native-namestring vidfile))
   :input :interactive
   :error-output :interactive
   :output :interactive
   :ignore-error-status t)

  (let ((confirm (uiop:run-program (list
                                    "rofi"
                                    "-dmenu"
                                    "-theme"
                                    (format nil "~a/.local/share/rofi/applets/confirm.rasi"
                                     (user-homedir-pathname))
                                    "-mesg"
                                    (format nil "delete `~a`?" basename))
                  :input (lambda (s) (format s "No~CYes" #\newline))
                  :ignore-error-status t
                  :output :string)))
   (when (string-equal (format nil "Yes~C" #\newline) confirm)
    (format t "deleting file `~a`~%" basename)
    (delete-file vidfile)))))
