branch: externals/buffer-env commit bc71c5014ec79f9afbc699f48f794d03dd7ca64f Author: Philip Kaludercic <phil...@posteo.net> Commit: Augusto Stoffel <ast...@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)