Rainer M Krug <r.m.k...@gmail.com> writes: > Hi > > I want to use org-mode to create a submit script for a cluster, and would need > the first lines to be as follow: > > #!/bin/bash > #$ -cwd -j y > #$ -t 1-5 > #$ -l mem_free=4G > > at the moment I get: > > #!/usr/bin/env sh > # generated by org-babel-tangle > # > [[file:~/Documents/Projects/BiocontrolAndAlienDynamics/HakeaLandscape/trunc/R > /spreadSim.org::*submit%20scripts][block-19]] > #$ -cwd -j y > #$ -t 1-5 > #$ -l mem_free=4G > > 1) Is the first line customizable, or do I have to change org-babel-sh.el to > use #!/bin/bash instead? > 2) Can I ommit the second and third line (the comments added by tangle)?
Hi Rainer, Yes, I've also wanted control over these things from time to time. Here's a patch. It introduces two new variables; you would turn off both behaviours as follows: (setq org-babel-tangle-include-shebang nil) (setq org-babel-tangle-include-org-coordinates nil) If Eric approves, he'll apply the patch to the main org-mode git repo. I suspect you're using git already, but if not then you probably do want to use it for org-mode. Dan >From ebc119693ca9daf104f935e794b5e2122127fa05 Mon Sep 17 00:00:00 2001 From: Dan Davison <davi...@stats.ox.ac.uk> Date: Wed, 3 Feb 2010 10:41:10 -0500 Subject: [PATCH] babel: provide control over additional content in tangled files New variables: * org-babel-tangle-include-shebang Whether to include shebang * org-babel-tangle-include-org-coordinates Whether to include links to org file etc. --- contrib/babel/lisp/org-babel-tangle.el | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/contrib/babel/lisp/org-babel-tangle.el b/contrib/babel/lisp/org-babel-tangle.el index 66e2c26..c019c43 100644 --- a/contrib/babel/lisp/org-babel-tangle.el +++ b/contrib/babel/lisp/org-babel-tangle.el @@ -40,6 +40,22 @@ to use when writing out the language to file, and an optional fourth element is a flag which when true indicates that the language does not support comments.") +(defvar org-babel-tangle-include-shebang t + "If non-nil the first line of tangled output will be a +'shebang'-style line, for example, + +#!/bin/sh + +On UNIX/linux-like operating systems these lines serve to specify +an interpreter for the code contained in the file.") + +(defvar org-babel-tangle-include-org-coordinates t + "If non-nil (and if a comment syntax is defined), each block in +the tangled output will be (a) preceded by a commented org-style +link back to the source block in the source org file, and (b) +followed by a commented statement indicating which block has just +ended.") + (defun org-babel-load-file (file) "Load the contents of the Emacs Lisp source code blocks in the org-mode formatted FILE. This function will first export the @@ -117,12 +133,12 @@ exported source code blocks by language." ;; drop source-block to file (with-temp-buffer (funcall lang-f) - (when (and she-bang (not (member file-name she-banged))) + (when (and org-babel-tangle-include-shebang she-bang (not (member file-name she-banged))) (insert (concat she-bang "\n")) (setq she-banged (cons file-name she-banged))) - (when commentable + (when (and commentable org-babel-tangle-include-org-coordinates) (comment-region - (point) (progn (insert "generated by org-babel-tangle") (point))) + (point) (progn (insert "Generated by org-babel-tangle") (point))) (move-end-of-line nil)) (org-babel-spec-to-string spec) (append-to-file nil nil file-name)) @@ -188,8 +204,8 @@ form (link source-name params body)" (flet ((insert-comment (text) + (insert "\n") (when commentable - (insert "\n") (comment-region (point) (progn (insert text) (point))) (move-end-of-line nil) (insert "\n")))) @@ -197,9 +213,13 @@ form (source-name (second spec)) (body (fourth spec)) (commentable (not (fifth spec)))) - (insert-comment (format "[[%s][%s]]" (org-link-escape link) source-name)) + (if org-babel-tangle-include-org-coordinates + (insert-comment (format "[[%s][%s]]" (org-link-escape link) source-name)) + (insert "\n")) (insert (format "%s" (org-babel-chomp body))) - (insert-comment (format "%s ends here" source-name))))) + (if org-babel-tangle-include-org-coordinates + (insert-comment (format "%s ends here" source-name)) + (insert "\n"))))) (provide 'org-babel-tangle) ;;; org-babel-tangle.el ends here -- 1.6.3.3 _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode