   (dwim-shell-command--on-marked-files
    "Convert to mp3"
    "ffmpeg -stats -n -i <<f>> -acodec libmp3lame <<fne>>.mp3"
-   :check-utils "ffmpeg"))
+   :utils "ffmpeg"))
 
 (defun dwim-shell-command-convert-image-to-jpg ()
   "Convert all marked images to jpg(s)."

  (dwim-shell-command--on-marked-files
   "DWIM shell command" (read-shell-command "DWIM shell command: ")))

(cl-defun dwim-shell-command-execute-script (buffer-name script &key files check-extensions check-utils post-process-template on-completion)
  "Execute SCRIPT, with BUFFER-NAME."
  (cl-assert buffer-name nil "Script must have a buffer name")
  (cl-assert (not (string-empty-p script)) nil "Script must not be empty")
  (when (stringp check-extensions)
    (setq check-extensions (list check-extensions)))
  (when (stringp check-utils)
    (setq check-utils (list check-utils)))
  (let* ((proc-buffer (generate-new-buffer buffer-name))
         (template script)
         (script "")

    (if (seq-empty-p files)
        (setq script template)
      (seq-do (lambda (file)
                (when extensions
                  (cl-assert (seq-contains-p extensions (file-name-extension file))
                             nil "Not a .%s file" (string-join extensions " .")))
                (setq script
                      (concat script "\n"
                              (dwim-shell-command--expand template file post-process-template))))
