emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [Babel] Debugging shell code that misbehaves
@ 2010-10-14 12:56 Sébastien Vauban
  2010-10-14 13:18 ` Dan Davison
  0 siblings, 1 reply; 4+ messages in thread
From: Sébastien Vauban @ 2010-10-14 12:56 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

#+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


_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode-mXXj517/zsQ@public.gmane.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

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

end of thread, other threads:[~2010-10-19 10:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-14 12:56 [Babel] Debugging shell code that misbehaves Sébastien Vauban
2010-10-14 13:18 ` Dan Davison
2010-10-18 21:38   ` Sébastien Vauban
2010-10-19 10:18     ` Dan Davison

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