Fix extra argument for executable-find with older versions of Emacs
This commit is contained in:
parent
0c9e6de3ee
commit
257ece43e6
@ -2,7 +2,7 @@
|
||||
|
||||
;; Author: Lucien Cartier-Tilet <lucien@phundrak.com>
|
||||
;; Maintainer: Lucien Cartier-Tilet <lucien@phundrak.com>
|
||||
;; Version: 0.7.6
|
||||
;; Version: 0.7.7
|
||||
;; Package-Requires: ((emacs "25.1") (f "0.20") (s "1"))
|
||||
;; Homepage: https://github.com/Phundrak/eshell-info-banner.el
|
||||
|
||||
@ -87,6 +87,29 @@
|
||||
("11.6" . "macOS Big Sur"))
|
||||
"Versions of OSX and macOS and their name."))
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Macros ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defmacro eshell-info-banner--with-face (str &rest properties)
|
||||
"Helper macro for applying face `PROPERTIES' to `STR'."
|
||||
`(propertize ,str 'face (list ,@properties)))
|
||||
|
||||
(defun eshell-info-banner--executable-find (program &optional remote)
|
||||
(if (version< emacs-version "27.1")
|
||||
(let ((default-directory (if (and eshell-info-banner-tramp-aware
|
||||
remote)
|
||||
default-directory
|
||||
"~")))
|
||||
(executable-find program))
|
||||
(executable-find program remote)))
|
||||
|
||||
(defun eshell-info-banner--shell-command-to-string (command)
|
||||
"Execute shell command COMMAND and return its output as a string.
|
||||
Ensures the command is ran with LANG=C."
|
||||
(shell-command-to-string (format "LANG=C %s" command)))
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Custom variables ;
|
||||
@ -147,9 +170,10 @@
|
||||
:safe #'stringp
|
||||
:version "0.5.0")
|
||||
|
||||
(defcustom eshell-info-banner-use-duf (if (executable-find eshell-info-banner-duf-executable)
|
||||
t
|
||||
nil)
|
||||
(defcustom eshell-info-banner-use-duf
|
||||
(if (eshell-info-banner--executable-find eshell-info-banner-duf-executable)
|
||||
t
|
||||
nil)
|
||||
"If non-nil, use `duf' instead of `df'."
|
||||
:group 'eshell-info-banner
|
||||
:type 'boolean
|
||||
@ -181,20 +205,6 @@
|
||||
"Face for `eshell-info-banner' progress bars displaying critical levels."
|
||||
:group 'eshell-info-banner)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Macros ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defmacro eshell-info-banner--with-face (str &rest properties)
|
||||
"Helper macro for applying face `PROPERTIES' to `STR'."
|
||||
`(propertize ,str 'face (list ,@properties)))
|
||||
|
||||
(defun eshell-info-banner--shell-command-to-string (command)
|
||||
"Execute shell command COMMAND and return its output as a string.
|
||||
Ensures the command is ran with LANG=C."
|
||||
(shell-command-to-string (format "LANG=C %s" command)))
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Internal functions ;
|
||||
@ -206,7 +216,7 @@ Ensures the command is ran with LANG=C."
|
||||
"Get uptime of machine if `uptime' is available.
|
||||
|
||||
If the executable `uptime' is not found, return nil."
|
||||
(when (executable-find "uptime")
|
||||
(when (eshell-info-banner--executable-find "uptime")
|
||||
(let ((uptime-str (eshell-info-banner--shell-command-to-string "uptime -p")))
|
||||
(if (not (seq-some (lambda (keyword)
|
||||
(string-match-p keyword uptime-str))
|
||||
@ -634,7 +644,7 @@ If RELEASE-FILE is nil, use '/etc/os-release'."
|
||||
(insert-file-contents (concat prefix "/bedrock/etc/bedrock-release"))
|
||||
(buffer-string))))
|
||||
;; Proxmox
|
||||
((executable-find "pveversion" eshell-info-banner-tramp-aware)
|
||||
((eshell-info-banner--executable-find "pveversion" eshell-info-banner-tramp-aware)
|
||||
(let ((distro (eshell-info-banner--shell-command-to-string "pveversion")))
|
||||
(save-match-data
|
||||
(string-match "/\\([^/]+\\)/" distro)
|
||||
@ -642,13 +652,13 @@ If RELEASE-FILE is nil, use '/etc/os-release'."
|
||||
(substring-no-properties distro
|
||||
(match-beginning 1)
|
||||
(match-end 1))))))
|
||||
((executable-find "hostnamectl" eshell-info-banner-tramp-aware)
|
||||
((eshell-info-banner--executable-find "hostnamectl" eshell-info-banner-tramp-aware)
|
||||
(eshell-info-banner--get-os-information-from-hostnamectl))
|
||||
((executable-find "lsb_release" eshell-info-banner-tramp-aware)
|
||||
((eshell-info-banner--executable-find "lsb_release" eshell-info-banner-tramp-aware)
|
||||
(eshell-info-banner--get-os-information-from-lsb-release))
|
||||
((file-exists-p (concat prefix "/etc/os-release"))
|
||||
(eshell-info-banner--get-os-information-from-release-file))
|
||||
((executable-find "shepherd")
|
||||
((eshell-info-banner--executable-find "shepherd")
|
||||
(let ((distro (car (s-lines (eshell-info-banner--shell-command-to-string "guix -V")))))
|
||||
(save-match-data
|
||||
(string-match "\\([0-9\\.]+\\)" distro)
|
||||
|
Loading…
Reference in New Issue
Block a user