emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [BABEL] Redirect stderr to stdout?


From: Eric Schulte
Subject: Re: [O] [BABEL] Redirect stderr to stdout?
Date: Fri, 02 Mar 2012 09:21:57 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.93 (gnu/linux)

Viktor Rosenfeld <address@hidden> writes:

> Hi,
>
> is there a way to capture stderr output of a babel block and have it
> appear in the results block (instead of being printed in the *Shell
> Command Output* buffer)? On sh blocks I could redirect myself, but I'm
> trying to capture the output of psql (the PostgreSQL client).
>
> Specifically, I have the following code block:
>
> #+BEGIN_SRC sql :noweb yes :results output verbatim
> \timing on
> <<exp8-test-query>>
> #+END_SRC
>
> #+RESULTS:
> : count
> : 95977
>
> The \timing directive causes psql to print the runtime of the query on
> stderr. If I run the query on the psql command line, the following
> output appears:
>
>  count 
>  -------
>  95977
>  (1 row)
>
>  Time: 1895,558 ms
>
> I suppose that duplicating this output in Babel would be difficult,
> because it interferes with the parsing of the result set.
>

Hi Viktor,

Currently the only action Babel takes with STDERR is to display it in a
pop-up buffer when code block evaluation fails.  It would certainly be
possible to add :results header argument to incorporate STDERR into
results (and this desire has been expressed previously).  Reasonable
combination options would likely include (at least) the following.

| stderr-only | return stderr instead of stdout    |
| 2>&1        | interleave stderr and stdout       |
| concat      | add stderr to the end of stdout    |
| list        | return a list of stderr and stdotu |

The best (read simple and extensible) implementation and syntax for this
behavior is not obvious to me (and I simply don't have time).  If you
(or anyone on the list) have any interest in hacking elisp code the
place to start would be `org-babel-eval' for a serious implementation,
or an quick hack may be possible through customization of the
`org-babel-eval-error-notify' function.

Hope this helps.

Best,

>
> Cheers,
> Viktor
>

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



reply via email to

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