# ant-user mailing list archives

##### Site index · List index
Message view
Top
From Matt Benson <gudnabr...@yahoo.com>
Subject Re: How to hide output of an <exec>
Date Fri, 15 Apr 2005 21:00:07 GMT
```In Ant 1.6.3 (final, not beta) or CVS HEAD you can
conditionally define a redirector, giving it an id:

<redirector id="r" /> for no file,
<redirector id="r" file="\${output.file}" /> for a
file.
and use it with your <exec>:

<exec executable="foo.exe">
<redirector refid="r" />
</exec>

-Matt

--- Ninju Bohra <ninju_bohra@yahoo.com> wrote:

> Can you give a further detail on how to use the
> <redirector> solution (having never used
> <redirector>s
> before)?
>
> I am using ANT 1.6.2 (can't use 1.6.3beta1 :-()
>
> Taking Ivan Ivanov's advice I would like to have the
> output from the <exec> either come to the screen
> (when
> run by user) or go to file (when invoked by CC)
> based
> upon a presence of a property...
>
> --- Matt Benson <gudnabrsam@yahoo.com> wrote:
>
> > I guess spawn could work.  A couple more options:
> > You want to have a single task declaration that
> uses
> > options.  Meaning you can't just declare file
> > without
> > using it all the time.  So you have two choices,
> > still
> > using I/O redirection.  With Ant 1.6.3 you will
> have
> > the alwayslog attribute on a redirector, so you
> > could
> > use <redirector output="NUL" alwayslog="\${dolog}"
> > />.
> > Or you could use conditions to store a redirector
> to
> > a
> > particular ID.  So your exec would always use
> > <redirector refid="r" /> which might ref
> > <redirector id="r" /><!-- default behavior -->
> > or
> > <redirector id="r" output="NUL" />
> >
> > HTH,
> > Matt
> >
> > --- Ninju Bohra <ninju_bohra@yahoo.com> wrote:
> >
> > > I thought about using the output attribute, but
> > what
> > > value would I use for when they DO want the
> output
> > > to
> > > come to the console?  I don't want to have the
> > > <exec>
> > > task duplicated (differing only in one have the
> > > output="NUL" and the other not using the output
> > > attribute) and then a set of conditions
> > controlling
> > > which <exec> to invoke.
> > >
> > > Actually, I am thinking of using the spawn
> > attribute
> > > instead.  The default value of the
> \${hide_output}
> > > property would be 'false', the CC script would
> set
> > > the
> > > \${hide_output} to 'true' when it invoke the
> script
> > > and
> > > the single task call would be:
> > >
> > >    <exec executable="..." spawn=\${hide_output}>
> > >         <arg line...>
> > >             .
> > >             .
> > >             .
> > >    </exec>
> > >
> > > What do you think?
> > > --- Matt Benson <gudnabrsam@yahoo.com> wrote:
> > > > If you are using a recent version of Ant, you
> > > could
> > > > redirect to your null device (a file).  Since
> > > you're
> > > > on Windows (I assume from the backslashed
> > paths),
> > > > the
> > > > file will be NUL .  You could do some
> > conditional
> > > > stuff based on OS to choose NUL or /dev/null
> as
> > > your
> > > > null device and be cross-platform, but
> basically
> > > > <exec
> > > > output="NUL"> should work on Windows.
> > > >
> > > > HTH,
> > > > Matt
> > > >
> > > > --- Ninju Bohra <ninju_bohra@yahoo.com> wrote:
> > > > > Hello all,
> > > > >
> > > > > On my Windows Box, I have a series of <exec>
> > > calls
> > > > > to
> > > > > do a set of Orcale database operations, one
> of
> > > the
> > > > > calls look like:
> > > > >
> > > > >        <exec executable="imp.exe">
> > > > >           <arg value="\${import.login}"/>
> > > > >           <arg
> > > > > value="file=\${export.dir}\DataExport.dmp"/>
> > > > >           <arg
> > > > > value="log=\${export.dir}\DataImport.log"/>
> > > > >           <arg
> > > > > value="parfile=\${export.dir}\fromuser.txt"/>
> > > > >           <arg
> value="touser=\${import.user}"/>
> > > > >           <arg value="BUFFER=32000000"/>
> > > > >           <arg value="RECORDLENGTH=65535"/>
> > > > >           <arg value="IGNORE=N"/>
> > > > >           <arg value="GRANTS=N"/>
> > > > >           <arg value="ROWS=Y"/>
> > > > >           <arg value="COMMIT=N"/>
> > > > >           <arg value="INDEXES=Y"/>
> > > > >           <env key="NLS_LANG"
> > > > > value="AMERICAN_AMERICA.UTF8"/>
> > > > >        </exec>
> > > > >
> > > > > Now everything works fine with the program
> > > > > generating
> > > > > a lot of output to the console.  This output
> > is
> > > > > useful
> > > > > when the call initiated by a user, but we
> also
> > > > have
> > > > > an
> > > > > automated CruiseControl process that uses
> the
> > > same
> > > > > targets to load it's database and the
> problem
> > is
> > > > > that
> > > > > all that output (2k+ lines) ends up
> cluttering
> > > the
> > > > > final CC email that gets generated.
> > > > >
> > > > > So is there any simple parameter that I can
> > send
> > > > to
> > > > > the <exec> task to tell it to suppress
> sending
> > > the
> > > > > output the to System.out?
> > > > >
> > > > >
> > > > >
> > > > > __________________________________
> > > > > Do you Yahoo!?
> > > > > Yahoo! Small Business - Try our new
> resources
> > > > site!
> > > > > http://smallbusiness.yahoo.com/resources/
> > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > > > > user-unsubscribe@ant.apache.org
> > > > > For additional commands, e-mail:
> > > > > user-help@ant.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > __________________________________
> > > > Do you Yahoo!?
> > > > Yahoo! Small Business - Try our new resources
> > > site!
> > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > > > user-unsubscribe@ant.apache.org
> > > > For additional commands, e-mail:
> > > > user-help@ant.apache.org
> > > >
> > > >
> > >
> > >
> __________________________________________________
> > > Do You Yahoo!?
>
=== message truncated ===

__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!