[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Better way to make sure external command exists in the system?
From: |
Jean Louis |
Subject: |
Re: Better way to make sure external command exists in the system? |
Date: |
Tue, 23 Mar 2021 11:02:32 +0300 |
User-agent: |
Mutt/2.0.6 (2021-03-06) |
* Emanuel Berg via Users list for the GNU Emacs text editor
<help-gnu-emacs@gnu.org> [2021-03-21 20:18]:
> Jean Louis wrote:
>
> > I would not like later invoking functions that don't work.
> > But I do the checks in the functions. Sometimes majority of
> > functions belong in the same domain that uses
> > external commands.
> >
> > (defun rcd-which-list (command-list)
> > "Verifies that list of shell commands COMMAND-LIST exist in
> > user's $PATH"
> > (let ((all-exist t))
> > (dolist (command command-list all-exist)
> > (unless (executable-find command)
> > (setq all-exist nil)
> > (rcd-warning-message "Shell command `%s' does not exist" command)))))
> >
> > [and much more Elisp]
>
> I'll read it, if you fix all this first...
>
> byte compiler:
>
> geh.el:
> In image-resize-dired:
> geh.el:324:32: Warning: reference to free variable
> ‘*image-default-resize-size*’
;;; image-resize-dired.el --- Function to resize images in Dired
;; dired-get-marked-files is in dired
;;; Commentary:
;;
;;; Code:
(require 'dired)
(defvar *image-default-resize-size* 1536)
(defvar *image-resize-sizes* '("1536" "1024" "800" "1200" "640"))
;; Place your warning sound file yourself
(defcustom rcd-warning-message-sound-file nil
"The sound file for warning messages."
:group 'rcd
:type 'string)
(defun image-resize (file &optional size)
"Resizes the JPG image with default SIZE.
Argument FILE is image to be resized."
(if (rcd-which-list '("mogrify"))
(let ((extension (file-name-extension file)))
(when (or (equal (downcase extension) "jpg")
(equal (downcase extension) "png"))
(let* ((file (shell-double-quote file))
(command (format "mogrify -resize %s \"%s\"" size file)))
(message command)
(call-process-shell-command command))))
(rcd-warning-message "RCD ERROR: `mogrify' not found in `$PATH'")))
(defun image-resize-dired ()
"Resizes images."
(interactive)
(let ((files (dired-get-marked-files))
(size (read-number "Size: " *image-default-resize-size*
'(*image-resize-sizes*))))
(dolist (file files)
(image-resize file size))
(revert-buffer)))
(defun shell-double-quote (s)
"Double quotes for the string that shall be fed to shell command.
Argument S is string."
(replace-regexp-in-string "\"" "\\\\\"" s))
(provide 'image-resize-dired)
;;; image-resize-dired.el ends here
- Better way to make sure external command exists in the system?, Jean Louis, 2021/03/18
- Re: Better way to make sure external command exists in the system?, Daniel Martín, 2021/03/19
- Re: Better way to make sure external command exists in the system?, Jean Louis, 2021/03/21
- Re: Better way to make sure external command exists in the system?, Emanuel Berg, 2021/03/21
- Re: Better way to make sure external command exists in the system?,
Jean Louis <=
- Re: Better way to make sure external command exists in the system?, Emanuel Berg, 2021/03/23
- Re: Better way to make sure external command exists in the system?, Jean Louis, 2021/03/23
- Re: Better way to make sure external command exists in the system?, Emanuel Berg, 2021/03/25
- Re: Better way to make sure external command exists in the system?, Jean Louis, 2021/03/25
- Re: Better way to make sure external command exists in the system?, Emanuel Berg, 2021/03/25
- Re: Better way to make sure external command exists in the system?, Jean Louis, 2021/03/25
- Re: Better way to make sure external command exists in the system?, Emanuel Berg, 2021/03/25