mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-26 10:49:33 +00:00
(dired-do-async-shell-command): New command.
This commit is contained in:
parent
c320e90a79
commit
5ec0c89248
@ -490,6 +490,26 @@ FILES are affected."
|
||||
(format prompt (dired-mark-prompt arg files))
|
||||
nil nil)))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-do-async-shell-command (command &optional arg file-list)
|
||||
"Run a shell command COMMAND on the marked files asynchronously.
|
||||
|
||||
Like `dired-do-shell-command' but if COMMAND doesn't end in ampersand,
|
||||
adds `* &' surrounded by whitespace and executes the command asynchronously.
|
||||
The output appears in the buffer `*Async Shell Command*'."
|
||||
(interactive
|
||||
(let ((files (dired-get-marked-files t current-prefix-arg)))
|
||||
(list
|
||||
;; Want to give feedback whether this file or marked files are used:
|
||||
(dired-read-shell-command "& on %s: " current-prefix-arg files)
|
||||
current-prefix-arg
|
||||
files)))
|
||||
(unless (string-match "[*?][ \t]*\\'" command)
|
||||
(setq command (concat command " *")))
|
||||
(unless (string-match "&[ \t]*\\'" command)
|
||||
(setq command (concat command " &")))
|
||||
(dired-do-shell-command command arg file-list))
|
||||
|
||||
;; The in-background argument is only needed in Emacs 18 where
|
||||
;; shell-command doesn't understand an appended ampersand `&'.
|
||||
;;;###autoload
|
||||
|
Loading…
Reference in New Issue
Block a user