summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2010-04-19 23:47:43 -0600
committerEric Schulte <schulte.eric@gmail.com>2010-04-23 10:09:59 -0600
commit1fdc012e3d50279c469acfc3b1851147f11449ee (patch)
tree45507c112a93325ff88e0b27dd3eb889bc6dabac
parente6c979f0d74ee7e095401b622c50d2ed56674a8b (diff)
downloadorg-mode-1fdc012e3d50279c469acfc3b1851147f11449ee.tar.gz
org-babel-expand-body:sh
-rw-r--r--contrib/babel/lisp/langs/org-babel-sh.el22
1 files changed, 13 insertions, 9 deletions
diff --git a/contrib/babel/lisp/langs/org-babel-sh.el b/contrib/babel/lisp/langs/org-babel-sh.el
index aed73d1..c39d556 100644
--- a/contrib/babel/lisp/langs/org-babel-sh.el
+++ b/contrib/babel/lisp/langs/org-babel-sh.el
@@ -40,22 +40,26 @@
"Command used to invoke a shell. This will be passed to
`shell-command-on-region'")
+(defun org-babel-expand-body:sh (body params &optional processed-params)
+ (let ((vars (second (or processed-params (org-babel-process-params params))))
+ (sep (cdr (assoc :separator params))))
+ (concat
+ (mapconcat ;; define any variables
+ (lambda (pair)
+ (format "%s=%s"
+ (car pair)
+ (org-babel-sh-var-to-sh (cdr pair) sep)))
+ vars "\n") "\n" body "\n\n")))
+
(defun org-babel-execute:sh (body params)
"Execute a block of Shell commands with org-babel. This
function is called by `org-babel-execute-src-block'."
(message "executing Shell source code block")
(let* ((processed-params (org-babel-process-params params))
(session (org-babel-sh-initiate-session (first processed-params)))
- (vars (second processed-params))
(result-type (fourth processed-params))
- (sep (cdr (assoc :separator params)))
- (full-body (concat
- (mapconcat ;; define any variables
- (lambda (pair)
- (format "%s=%s"
- (car pair)
- (org-babel-sh-var-to-sh (cdr pair) sep)))
- vars "\n") "\n" body "\n\n"))) ;; then the source block body
+ (full-body (org-babel-expand-body:sh
+ body params processed-params))) ;; then the source block body
(org-babel-reassemble-table
(org-babel-sh-evaluate session full-body result-type)
(org-babel-pick-name (nth 4 processed-params) (cdr (assoc :colnames params)))