org-babel-expand-body:sh

This commit is contained in:
Eric Schulte 2010-04-19 23:47:43 -06:00
parent e6c979f0d7
commit 1fdc012e3d
1 changed files with 13 additions and 9 deletions

View File

@ -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)))