summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-10-21 12:35:05 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:06:03 +0100
commit07c84b293c449aada0dd3168fad279154498e612 (patch)
tree379c6ae194be8ccc74f19713ed798b3887d31aa0
parent19081f12f7ced5981511cc34e9b99555b924824e (diff)
downloadorg-mode-07c84b293c449aada0dd3168fad279154498e612.tar.gz
babel: shell: New variable assignment and expansion scheme
* ob-sh.el (org-babel-execute:sh): Use generic expansion function (org-babel-expand-body:sh): Delete function (org-babel-prep-session:sh): Change name of called function (org-babel-variable-assignments:sh): Change function name
-rw-r--r--lisp/ob-sh.el13
1 files changed, 4 insertions, 9 deletions
diff --git a/lisp/ob-sh.el b/lisp/ob-sh.el
index 5817379..774e1ed 100644
--- a/lisp/ob-sh.el
+++ b/lisp/ob-sh.el
@@ -45,19 +45,14 @@
"Command used to invoke a shell.
This will be passed to `shell-command-on-region'")
-(defun org-babel-expand-body:sh (body params)
- "Expand BODY according to PARAMS, return the expanded body."
- (mapconcat #'identity
- (append (org-babel-sh-variable-assignments params) (list body))
- "\n"))
-
(defun org-babel-execute:sh (body params)
"Execute a block of Shell commands with Babel.
This function is called by `org-babel-execute-src-block'."
(let* ((processed-params (org-babel-process-params params))
(session (org-babel-sh-initiate-session (nth 0 processed-params)))
(result-params (nth 2 processed-params))
- (full-body (org-babel-expand-body:sh body params)))
+ (full-body (org-babel-expand-body:generic
+ body params (org-babel-variable-assignments:sh params))))
(org-babel-reassemble-table
(org-babel-sh-evaluate session full-body result-params)
(org-babel-pick-name
@@ -68,7 +63,7 @@ This function is called by `org-babel-execute-src-block'."
(defun org-babel-prep-session:sh (session params)
"Prepare SESSION according to the header arguments specified in PARAMS."
(let* ((session (org-babel-sh-initiate-session session))
- (var-lines (org-babel-sh-variable-assignments params)))
+ (var-lines (org-babel-variable-assignments:sh params)))
(org-babel-comint-in-buffer session
(mapc (lambda (var)
(insert var) (comint-send-input nil t)
@@ -86,7 +81,7 @@ This function is called by `org-babel-execute-src-block'."
;; helper functions
-(defun org-babel-sh-variable-assignments (params)
+(defun org-babel-variable-assignments:sh (params)
"Return list of shell statements assigning the block's variables"
(let ((sep (cdr (assoc :separator params))))
(mapcar