From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: [Babel] Debugging shell code that misbehaves Date: Thu, 14 Oct 2010 14:18:55 +0100 Message-ID: <87d3rcrjy8.fsf@stats.ox.ac.uk> References: <80zkuhkk67.fsf@mundaneum.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from [140.186.70.92] (port=53367 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P6NiG-0000A8-Hc for emacs-orgmode@gnu.org; Thu, 14 Oct 2010 09:19:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P6NiF-0005it-Ar for emacs-orgmode@gnu.org; Thu, 14 Oct 2010 09:19:16 -0400 Received: from plane.gmane.org ([80.91.229.3]:42523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P6NiF-0005iS-5i for emacs-orgmode@gnu.org; Thu, 14 Oct 2010 09:19:15 -0400 Received: from public by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1P6Ni5-00055P-Kg for emacs-orgmode@gnu.org; Thu, 14 Oct 2010 15:19:05 +0200 In-Reply-To: <80zkuhkk67.fsf@mundaneum.com> (=?utf-8?Q?=22S=C3=A9bastien?= Vauban"'s message of "Thu, 14 Oct 2010 14:56:00 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: =?utf-8?Q?S=C3=A9bastien?= Vauban Cc: public-emacs-orgmode-mXXj517/zsQ@plane.gmane.org S=C3=A9bastien Vauban writes: > #+TITLE: Debugging shell code that misbehaves > #+DATE: 2010-10-14 > #+LANGUAGE: en_US > > * Use case > > Let's say that: > > - This file is in =3D~/Client/Spec=3D > - I'm working on such a chunk of code: > > #+begin_src sh :results output :exports results > grep indAllocType ../Ontology/champs.csv |\ > iconv -f LATIN1 -t UTF8 |\ > tr "[]" "|" | cut -d "|" -f 2 | cut -d " " -f 2- |\ > sed 's%, %\n%g' > #+end_src > > and that, when executing it, I've got an error with not enough context fo= r me > to understand what's the problem is. > > Sneak preview: under Cygwin, the =3Dto=3D language (of the =3Diconv=3D co= mmand) must > be =3DUTF-8=3D in the above case (with a dash). > > * Debug it > > So, in order to debug, I decide to add a =3Dsession=3D argument: > > #+begin_src sh :results output :exports results :session sva > grep indAllocType ../Ontology/champs.csv |\ > iconv -f LATIN1 -t UTF8 |\ > tr "[]" "|" | cut -d "|" -f 2 | cut -d " " -f 2- |\ > sed 's%, %\n%g' > #+end_src > > and, there, something totally different is occurring: =3Dgrep=3D is not f= inding > the file anymore. > > Why? Because adding the session argument makes the code executed from my = *home > directory*, while it was executed from the *document's directory* in the = first > place. Hi Seb, This would be a bug. For me (ubuntu), the session does start up in the document's directory. Perhaps the emacs shell session behaves differently on your operating system (cygwin?)? > > So, this is not the right way to debug... as *conditions do change*. but should not > > * Solution? > > What's the right solution for such a case? Fix the bug. But failing that, > - Putting a full path to the file =3Dchamps.csv=3D (instead of the relati= ve one) > is not OK for me, as all of this is under SVN, and I want this to be > executable on someone's else PC (even if placed somewhere else). > > - Add an explicit =3Dcd=3D to the right place, before the commands execut= e. Not > possible, for the same reason as above. does it help to use a :dir header argument to specify default-directory for the session? Dan > > Is there some natural way to work around this? > > Best regards, > Seb