emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] [Babel] Debugging shell code that misbehaves


From: Sébastien Vauban
Subject: [Orgmode] [Babel] Debugging shell code that misbehaves
Date: Thu, 14 Oct 2010 14:56:00 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt)

#+TITLE:     Debugging shell code that misbehaves
#+DATE:      2010-10-14
#+LANGUAGE:  en_US

* Use case

Let's say that:

- This file is in =~/Client/Spec=
- 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 for me
to understand what's the problem is.

Sneak preview: under Cygwin, the =to= language (of the =iconv= command) must
be =UTF-8= in the above case (with a dash).

* Debug it

So, in order to debug, I decide to add a =session= 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: =grep= is not finding
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.

So, this is not the right way to debug... as *conditions do change*.

* Solution?

What's the right solution for such a case?

- Putting a full path to the file =champs.csv= (instead of the relative 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 =cd= to the right place, before the commands execute. Not
  possible, for the same reason as above.

Is there some natural way to work around this?

Best regards,
  Seb

-- 
Sébastien Vauban




reply via email to

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