emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/buffer-env bc71c5014e 1/3: Allow for buffer-env-script-


From: ELPA Syncer
Subject: [elpa] externals/buffer-env bc71c5014e 1/3: Allow for buffer-env-script-name to be a list of files
Date: Fri, 13 May 2022 11:57:26 -0400 (EDT)

branch: externals/buffer-env
commit bc71c5014ec79f9afbc699f48f794d03dd7ca64f
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Augusto Stoffel <astoff@users.noreply.github.com>

    Allow for buffer-env-script-name to be a list of files
---
 buffer-env.el | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/buffer-env.el b/buffer-env.el
index c29da45b8d..75743f4954 100644
--- a/buffer-env.el
+++ b/buffer-env.el
@@ -57,9 +57,10 @@
   "Buffer-local process environments."
   :group 'processes)
 
-(defcustom buffer-env-script-name ".envrc"
-  "File name of the script to produce environment variables."
-  :type 'string)
+(defcustom buffer-env-script-name
+  '(".envrc" "manifest.scm" "guix.scm")
+  "File name or list of the scripts to produce environment variables."
+  :type '(choice (repeat string) string))
 
 (defcustom buffer-env-commands
   '((".env" . "set -a && >&2 . \"$0\" && env -0")
@@ -141,11 +142,19 @@ Files marked as safe to execute are permanently stored in
 
 (defun buffer-env--locate-script ()
   "Locate a dominating file named `buffer-env-script-name'."
-  (when-let* ((dir (and (stringp buffer-env-script-name)
-                        (not (file-remote-p default-directory))
-                        (locate-dominating-file default-directory
-                                                buffer-env-script-name))))
-    (expand-file-name buffer-env-script-name dir)))
+  (unless (file-remote-p default-directory)
+    (cond
+     ((listp buffer-env-script-name)
+      (seq-some
+       (lambda (script-name)
+        (and-let* ((dir (locate-dominating-file default-directory
+                                               script-name)))
+          (expand-file-name script-name dir)))
+       buffer-env-script-name))
+     ((stringp buffer-env-script-name)
+      (when-let* ((dir (locate-dominating-file default-directory
+                                              buffer-env-script-name)))
+       (expand-file-name buffer-env-script-name dir))))))
 
 ;;;###autoload
 (defun buffer-env-update (&optional file)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]