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

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

[elpa] externals/org 39de4a1848 2/2: org-babel-sh-evaluate: Fix edge cas


From: ELPA Syncer
Subject: [elpa] externals/org 39de4a1848 2/2: org-babel-sh-evaluate: Fix edge case when :shebang is set and :dir is remote
Date: Sun, 23 Jul 2023 12:59:12 -0400 (EDT)

branch: externals/org
commit 39de4a1848d12b1be929853bf884ec04e121d9f0
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    org-babel-sh-evaluate: Fix edge case when :shebang is set and :dir is remote
    
    * lisp/ob-shell.el (org-babel-sh-evaluate): Pass remote local file
    name as command when executing script with :shebang.  `org-babel-eval'
    will fail when SCRIPT-FILE is TRAMP file name.
    
    Link: 
https://www.reddit.com/r/orgmode/comments/14zh2yi/orgbabel_shebang_not_working_on_with_tramp_dir/
---
 lisp/ob-shell.el | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el
index 340c79abe0..ae86ee4c24 100644
--- a/lisp/ob-shell.el
+++ b/lisp/ob-shell.el
@@ -357,7 +357,13 @@ return the value of the last statement in BODY."
                (when padline (insert "\n"))
                (insert body))
              (set-file-modes script-file #o755)
-             (org-babel-eval script-file "")))
+              (if (file-remote-p script-file)
+                  ;; Run remote script using its local path as COMMAND.
+                  ;; The remote execution is ensured by setting
+                  ;; correct `default-directory'.
+                  (let ((default-directory (file-name-directory script-file)))
+                    (org-babel-eval (file-local-name script-file) ""))
+               (org-babel-eval script-file ""))))
           (t (org-babel-eval shell-file-name (org-trim body))))))
     (when (and results value-is-exit-status)
       (setq results (car (reverse (split-string results "\n" t)))))



reply via email to

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