emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rainer M Krug <r.m.krug@gmail.com>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [BABEL] "unset" :var definitions for subtree
Date: Thu, 10 Feb 2011 09:33:22 +0100	[thread overview]
Message-ID: <4D53A2D2.2080300@gmail.com> (raw)
In-Reply-To: <87bp2koeir.fsf@gmail.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02/10/2011 02:27 AM, Eric Schulte wrote:
> Rainer M Krug <r.m.krug@gmail.com> 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?

:PROPERTIES:
:var: A=13
:no-expand
:END:

> 
> 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
and
: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=

or

: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,

Rainer



> 
> 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)
>> :PROPERTIES:
>> :tangle:   ./SA.sub
>> :exports: code
>> :END:
>> #+begin_src sh
>>   #PBS -j y
>>   #PBS -M Rainer@krugs.de
>>   #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 Rainer@krugs.de
>> #PBS -V
>> #PBS -l nodes=1:mem=4gb
>> ##
>> cd $PBS_O_WORKDIR
>>
>> But it is
>>
>> #!/bin/bash
>> RESULTSDIR=/media/Results/
>> ANALYSISDIR=~/Documents/Projects/analysis/
>> #PBS -j y
>> #PBS -M Rainer@krugs.de
>> #PBS -V
>> #PBS -l nodes=1:mem=4gb
>> ##
>> cd $PBS_O_WORKDIR
>>
>>
>> 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
Stellenbosch
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:      Rainer@krugs.de

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

iEYEARECAAYFAk1TotIACgkQoYgNqgF2egr+6wCfXk2HxVpLA6pfAExRJDsWi/j/
5YwAn1bINit/4aB5wFwWV3J3v7piIXhL
=ctxl
-----END PGP SIGNATURE-----

  reply	other threads:[~2011-02-10  8:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-07 15:12 [BABEL] "unset" :var definitions for subtree Rainer M Krug
2011-02-10  1:27 ` Eric Schulte
2011-02-10  8:33   ` Rainer M Krug [this message]
2011-02-10 16:48     ` Eric Schulte
2011-02-11  9:00       ` Rainer M Krug
2011-02-11  9:32         ` Dan Davison
2011-02-11 10:22           ` Rainer M Krug
2011-02-11 11:55             ` Dan Davison
2011-02-11 12:29               ` Rainer M Krug
2011-02-11 13:49                 ` Dan Davison
2011-02-11 13:56                   ` Rainer M Krug
2011-02-12 22:54                   ` Eric Schulte
2011-02-11 12:19       ` Dan Davison
2011-02-11 12:58         ` Rainer M Krug
2011-02-11 13:41           ` Dan Davison
2011-02-11 14:05             ` Rainer M Krug
2011-02-12 23:12               ` Eric Schulte
2011-02-13  1:21                 ` Dan Davison
2011-02-13 18:28                   ` Eric Schulte
2011-02-13 21:38                     ` Dan Davison
2011-02-14 19:22                       ` Eric Schulte
2011-02-11 14:16         ` Eric Schulte
2011-02-11 14:45           ` Dan Davison
2011-02-12 23:13             ` Eric Schulte
2011-02-13  1:38               ` Dan Davison
2011-02-13 18:33                 ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D53A2D2.2080300@gmail.com \
    --to=r.m.krug@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).