[Top][All Lists]

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

Re: [Orgmode] [BABEL] "unset" :var definitions for subtree

From: Rainer M Krug
Subject: Re: [Orgmode] [BABEL] "unset" :var definitions for subtree
Date: Thu, 10 Feb 2011 09:33:22 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20110207 Lightning/1.0b2 Shredder/3.1.9pre

Hash: SHA1

On 02/10/2011 02:27 AM, Eric Schulte wrote:
> Rainer M Krug <address@hidden> writes:
>> Hi
>> For one project, I am usinr org to write submit scripte to a cluster
>> runing torqu. The important bit in this is, that between the shebang and
>> the code, no other executable line must occur. As I am using variables
>> in org (:var) they will occur just after the shebang, which causes a
>> problem for torque. So, my question is, is there a way to "unset"
>> variables defined by using :var for a subtree?
> Hi Rainer,
> Interesting question... unfortunately I don't think that removing
> variables from header arguments is possible under the current setup.
> Perhaps in your case you could add a function to the post-tangle hook,
> which recognizes when it is being called in a just-tangled torqu script
> (maybe by searching for a series of #PBS lines), and then removes any
> lines between the shebang and the first #PBS line?

That is also an option - what I am using at the moment is to use
:no-expand as a code block specific header argument. But this raises the
other question:

Can I set the :no-expand in a properties block? As far as I understand,
in the properties block I have the argument and the value - but what do
I do with :noexpand?

:var: A=13

> More generally, I wonder what a natural method would be to allow
> unsetting of pre-set header arguments for local blocks or subtrees?
> This may only apply to the :var header argument, as most others have a
> default setting which can be actively set.  If you have any ideas for a
> natural syntax for such an operation I'd be happy to hear it.

First solution (probably the easiest to implement) would be along the
lines of the :no-expand header argument -

:expand-var yes
:expand-var no

This could possibly be expanded to
:expand-var A B C

which would expand only the variables A B and C

One step further: one could define groups of variables, like
:var-group X=A,B,C
or a similar syntax

and then
:expand-var X
would expand A B and C

This all would not be real unset - but a possibility for unsetting would be

:var B=


:var-unset B

i.e. if no value is specified in :var, the variable will be removed
(i.e. unset) - one could also use a null value (if it exists in elisp):

:var B=(null)

But this raises another question of mine:

I tried to use two :var headers in a properties block, but it only used
the first - did I miss something here?



> Cheers -- Eric
>> #+BABEL: :session *R* :results output :exports both :tangle
>> Analysis_sensitivity.R :var RESULTSDIR="/media/Results/" :var
>> ANALYSISDIR="~/Documents/Projects/analysis/"
>> * submit script (SA.sub)
>> :tangle:   ./SA.sub
>> :exports: code
>> :END:
>> #+begin_src sh
>>   #PBS -j y
>>   #PBS -M address@hidden
>>   #PBS -V
>>   #PBS -l nodes=1:mem=4gb
>>   ##
>>   cd $PBS_O_WORKDIR
>> #+end_src
>> I would need the tangled code to be :
>> #!/bin/bash
>> #PBS -j y
>> #PBS -M address@hidden
>> #PBS -V
>> #PBS -l nodes=1:mem=4gb
>> ##
>> But it is
>> #!/bin/bash
>> RESULTSDIR=/media/Results/
>> ANALYSISDIR=~/Documents/Projects/analysis/
>> #PBS -j y
>> #PBS -M address@hidden
>> #PBS -V
>> #PBS -l nodes=1:mem=4gb
>> ##
>> But RESULTSDIR and ANALYSISDIR is used in the remainder of the document
>> (several other subtrees)
>> Any help appreciated,
>> Rainer

- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      address@hidden

Skype:      RMkrug
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


reply via email to

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