From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: [babel] tangle from within codeblock? Date: Thu, 4 Aug 2011 15:21:10 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=00235452ffecae813504a9addaab Return-path: Received: from eggs.gnu.org ([140.186.70.92]:49137) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QoxrN-0002DZ-8S for emacs-orgmode@gnu.org; Thu, 04 Aug 2011 09:21:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QoxrL-0001lN-RU for emacs-orgmode@gnu.org; Thu, 04 Aug 2011 09:21:13 -0400 Received: from mail-qy0-f176.google.com ([209.85.216.176]:34365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QoxrL-0001l9-PD for emacs-orgmode@gnu.org; Thu, 04 Aug 2011 09:21:11 -0400 Received: by qyk7 with SMTP id 7so632399qyk.0 for ; Thu, 04 Aug 2011 06:21:10 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode --00235452ffecae813504a9addaab Content-Type: text/plain; charset=ISO-8859-1 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 --00235452ffecae813504a9addaab Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi

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

I commit via a code blo= ck:

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

How can I tangle automatically before I = commit? I could use batch execution as described in=A0=A0http://orgmode.org/manual/Batch-ex= ecution.html but I think it would be useless to start another emacs ins= tance? I thought that I could put it into a header variable to have it eval= uated, but I seem to be missing something:

* test
#+begin_src sh :tangle test.sh :v= ar TANGLED=3D(org-babel-tangle)
=A0 echo TEST''
#+end_src

But I get an error:

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

I have the feeling, I am missing something small.
=

Is there a different way to achieve this?
Cheers,

Rainer=A0

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

Centre of Excellence for Invasio= n Biology
Stellenbosch University
South Africa

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

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

email:= =A0 =A0 =A0Rainer@kru= gs.de

Skype: =A0 =A0 =A0RMkrug

--00235452ffecae813504a9addaab-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] tangle from within codeblock? Date: Fri, 05 Aug 2011 11:13:07 -0600 Message-ID: <877h6rn5ng.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:60926) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QpNxP-0003GI-7A for emacs-orgmode@gnu.org; Fri, 05 Aug 2011 13:13:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QpNxN-0008Od-Q7 for emacs-orgmode@gnu.org; Fri, 05 Aug 2011 13:13:11 -0400 Received: from mail-vw0-f41.google.com ([209.85.212.41]:41080) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QpNxN-0008OY-Nh for emacs-orgmode@gnu.org; Fri, 05 Aug 2011 13:13:09 -0400 Received: by vwm42 with SMTP id 42so1300939vwm.0 for ; Fri, 05 Aug 2011 10:13:08 -0700 (PDT) In-Reply-To: (Rainer M. Krug's message of "Thu, 4 Aug 2011 15:21:10 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Rainer M Krug Cc: emacs-orgmode --=-=-= Content-Type: text/plain Rainer M Krug 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... --=-=-= Content-Type: text/x-org Content-Disposition: inline; filename=tangle.org ** 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 --=-=-= Content-Type: text/plain Best -- Eric -- Eric Schulte http://cs.unm.edu/~eschulte/ --=-=-=-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [babel] tangle from within codeblock? Date: Mon, 8 Aug 2011 09:32:34 +0200 Message-ID: References: <877h6rn5ng.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8f6468c160f3c304a9f9737c Return-path: Received: from eggs.gnu.org ([140.186.70.92]:52277) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqKKE-0002iP-8p for emacs-orgmode@gnu.org; Mon, 08 Aug 2011 03:32:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QqKKC-0000Xs-9p for emacs-orgmode@gnu.org; Mon, 08 Aug 2011 03:32:38 -0400 Received: from mail-qw0-f41.google.com ([209.85.216.41]:59446) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqKKB-0000Xl-V5 for emacs-orgmode@gnu.org; Mon, 08 Aug 2011 03:32:36 -0400 Received: by qwa26 with SMTP id 26so1626834qwa.0 for ; Mon, 08 Aug 2011 00:32:34 -0700 (PDT) In-Reply-To: <877h6rn5ng.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode --e89a8f6468c160f3c304a9f9737c Content-Type: text/plain; charset=ISO-8859-1 On Fri, Aug 5, 2011 at 7:13 PM, Eric Schulte wrote: > Rainer M Krug 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 --e89a8f6468c160f3c304a9f9737c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Fri, Aug 5, 2011 at 7:13 PM, Eric Sch= ulte <schult= e.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 submi= t to
> svn.
>
> I commit via a code block:
>
> #+begin_src sh :results output
> svn commit =A0-m "edits"
> #+end_src
>
> How can I tangle automatically before I commit? I could use batch exec= ution
> as described in =A0http://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 m= issing
> something:
>
> * test
> #+begin_src sh :tangle test.sh :var TANGLED=3D(org-babel-tangle)
> =A0 echo TEST''
> #+end_src
>
> But I get an error:
>
> Saving file /home/rkrug/tmp/test.org...
> Wrote /home/rkrug/tmp/
te= st.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
=A0



Best -- Eric

--
Eric Schulte
http://cs.unm.ed= u/~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 : =A0 =A0 =A0 +33 - (0)9 53 10 27 44
Cell: =A0 = =A0 =A0 +33 - (0)6 85 62 59 98
Fax (F): =A0 =A0 =A0 +33 - (0)9 58 10 27 = 44

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

email: =A0 =A0 = =A0Rainer@krugs.de=

Skype: =A0 =A0 =A0RMkrug

--e89a8f6468c160f3c304a9f9737c--