emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [babel] tangle from within codeblock?
@ 2011-08-04 13:21 Rainer M Krug
  2011-08-05 17:13 ` Eric Schulte
  0 siblings, 1 reply; 3+ messages in thread
From: Rainer M Krug @ 2011-08-04 13:21 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1269 bytes --]

Hi

I have an R package in org, and would like to tangle it before I submit to
svn.

I commit via a code block:

#+begin_src sh :results output
svn commit  -m "edits"
#+end_src

How can I tangle automatically before I commit? I could use batch execution
as described in  http://orgmode.org/manual/Batch-execution.html but I think
it would be useless to start another emacs instance? I thought that I could
put it into a header variable to have it evaluated, but I seem to be missing
something:

* test
#+begin_src sh :tangle test.sh :var TANGLED=(org-babel-tangle)
  echo TEST''
#+end_src

But I get an error:

Saving file /home/rkrug/tmp/test.org...
Wrote /home/rkrug/tmp/test.org
(No changes need to be saved) [56 times]
cons: Lisp nesting exceeds `max-lisp-eval-depth'

I have the feeling, I am missing something small.

Is there a different way to achieve this?

Cheers,

Rainer

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

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax (F):       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

[-- Attachment #2: Type: text/html, Size: 1863 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [babel] tangle from within codeblock?
  2011-08-04 13:21 [babel] tangle from within codeblock? Rainer M Krug
@ 2011-08-05 17:13 ` Eric Schulte
  2011-08-08  7:32   ` Rainer M Krug
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Schulte @ 2011-08-05 17:13 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]

Rainer M Krug <r.m.krug@gmail.com> writes:

> Hi
>
> I have an R package in org, and would like to tangle it before I submit to
> svn.
>
> I commit via a code block:
>
> #+begin_src sh :results output
> svn commit  -m "edits"
> #+end_src
>
> How can I tangle automatically before I commit? I could use batch execution
> as described in  http://orgmode.org/manual/Batch-execution.html but I think
> it would be useless to start another emacs instance? I thought that I could
> put it into a header variable to have it evaluated, but I seem to be missing
> something:
>
> * test
> #+begin_src sh :tangle test.sh :var TANGLED=(org-babel-tangle)
>   echo TEST''
> #+end_src
>
> But I get an error:
>
> Saving file /home/rkrug/tmp/test.org...
> Wrote /home/rkrug/tmp/test.org
> (No changes need to be saved) [56 times]
> cons: Lisp nesting exceeds `max-lisp-eval-depth'
>
> I have the feeling, I am missing something small.
>
> Is there a different way to achieve this?
>

Hi Rainer,

You are very close, the problem is that the code block whose header
argument initiates the tangling should not itself be tangled, otherwise
you will wind up with the infinite recursion error you've noticed.

A setup like the following should work...


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: tangle.org --]
[-- Type: text/x-org, Size: 204 bytes --]

** tangle before evaluating a code block

#+begin_src sh :var TANGLED=(org-babel-tangle) :tangle no
  wc $TANGLED
#+end_src

#+results:
: 2  2 11 it.sh

#+begin_src sh :tangle it.sh
  echo TEST
#+end_src

[-- Attachment #3: Type: text/plain, Size: 61 bytes --]


Best -- Eric

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [babel] tangle from within codeblock?
  2011-08-05 17:13 ` Eric Schulte
@ 2011-08-08  7:32   ` Rainer M Krug
  0 siblings, 0 replies; 3+ messages in thread
From: Rainer M Krug @ 2011-08-08  7:32 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1998 bytes --]

On Fri, Aug 5, 2011 at 7:13 PM, Eric Schulte <schulte.eric@gmail.com> wrote:

> Rainer M Krug <r.m.krug@gmail.com> writes:
>
> > Hi
> >
> > I have an R package in org, and would like to tangle it before I submit
> to
> > svn.
> >
> > I commit via a code block:
> >
> > #+begin_src sh :results output
> > svn commit  -m "edits"
> > #+end_src
> >
> > How can I tangle automatically before I commit? I could use batch
> execution
> > as described in  http://orgmode.org/manual/Batch-execution.html but I
> think
> > it would be useless to start another emacs instance? I thought that I
> could
> > put it into a header variable to have it evaluated, but I seem to be
> missing
> > something:
> >
> > * test
> > #+begin_src sh :tangle test.sh :var TANGLED=(org-babel-tangle)
> >   echo TEST''
> > #+end_src
> >
> > But I get an error:
> >
> > Saving file /home/rkrug/tmp/test.org...
> > Wrote /home/rkrug/tmp/test.org
> > (No changes need to be saved) [56 times]
> > cons: Lisp nesting exceeds `max-lisp-eval-depth'
> >
> > I have the feeling, I am missing something small.
> >
> > Is there a different way to achieve this?
> >
>
> Hi Rainer,
>
> You are very close, the problem is that the code block whose header
> argument initiates the tangling should not itself be tangled, otherwise
> you will wind up with the infinite recursion error you've noticed.
>
> A setup like the following should work...
>

Works perfectly - I especially like the summary of the tangling via wc
$TANGLED - very nice side effect.

Thanks a lot,

Rainer


>
>
>
> Best -- Eric
>
> --
> Eric Schulte
> http://cs.unm.edu/~eschulte/
>
>


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

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax (F):       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

[-- Attachment #2: Type: text/html, Size: 3085 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-08-08  7:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-04 13:21 [babel] tangle from within codeblock? Rainer M Krug
2011-08-05 17:13 ` Eric Schulte
2011-08-08  7:32   ` Rainer M Krug

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