 Use POST-PROCESS-TEMPLATE to further expand template given own logic.
 
 Set TEMP-DIR to a unique temp directory to this template."
-  (cl-assert (not (and (dwim-shell-command--contains-multi-file-refs template)
+  (cl-assert (not (and (dwim-shell-command--contains-multi-file-ref template)
                        (dwim-shell-command--contains-single-file-ref template)))
              nil "Must not have %s and %s in the same template"
-             (dwim-shell-command--contains-multi-file-refs template)
+             (dwim-shell-command--contains-multi-file-ref template)
              (dwim-shell-command--contains-single-file-ref template))
   (setq files (seq-map (lambda (file)
                          (expand-file-name file))

Use POST-PROCESS-TEMPLATE to further expand template given own logic.

Set TEMP-DIR to a unique temp directory to this template."
  (cl-assert (not (and (dwim-shell-command--contains-multi-file-refs template)
                       (dwim-shell-command--contains-single-file-ref template)))
             nil "Must not have %s and %s in the same template"
             (dwim-shell-command--contains-multi-file-refs template)
             (dwim-shell-command--contains-single-file-ref template))
  (setq file (expand-file-name file))
  ;; "<<fne>>" with "/path/tmp.txt" -> "/path/tmp"

        ((string-match "\<\<e\>\>" template)
         "<<e>>")))

(defun dwim-shell-command--contains-multi-file-ref (template)
  "Check for <<*>> in TEMPLATE."
  (when (string-match "\<\<\\*\>\>" template)
    "<<*>>"))
