You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Arun <ar...@gmail.com> on 2007/10/20 17:47:15 UTC

Passing environment to cron

Hi,

 have a problem running ant script as a cronjob. The cron tells

BUILD FAILED
/home/build/mobchannel/mobchannelWEB/build.xml:230:
/home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not found.
But when I directly execute the build.xml using ant this error does not
occur.


 <property environment="env" />

        <property name="tomcat.home" value="${env.CATALINA_HOME}" />
        <property name="webapp.name" value="mobchannelWEB" />

        <property name="java.home" value="${env.JAVA_HOME}" />
        <property name="webapp.path" value="WebRoot" />
        <target name="jspc">
                <taskdef classname="org.apache.jasper.JspC" name="jasper2">
                        <classpath id="jspc.classpath">
                                <pathelement location="${
java.home}/../lib/tools.jar"
/>
                                <fileset dir="${tomcat.home}/bin">

 My CATALIN_HOME points to correctly and so does my JAVA_HOME.

The ${tomcat.home}/bin is getting expanded to path
/home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .

When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.

Why does my ant script do this when run from a cronjob using perl script.

Obviously the env property should be empty. I am calling ant -logfile
build.log from my perl script. And I am including the perlscript as a cron
job.

How can I pass the environment to ant. I have my CATALIN_HOME entry in
~/.bashrc. And When I echo in console I can see that too.


-- 
Thanks
Arun George

Re: Passing environment to cron

Posted by "Scot P. Floess" <fl...@mindspring.com>.
Arun:

To be honest, I am not sure as I don't know Perl...

However, if I were to execute this in a bash script:

`. /root/.bashrc`;

It wouldn't apply the .bashrc settings to my current shell... Not sure 
if this is also true in Perl...

Scot



Arun wrote:
> Scot,
>
> Ok,
> yes a crontab calls the perl script and executes the ant script.
> The line
> `ant -logfile build.log` executes the ant. But I sourced the bashrc in perl.
> But still the same.
> Any ideas.?
>
>
> On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>   
>> Arun:
>>
>> Sorry I don't know any Perl :(
>>
>> So what is the problem exactly?  You are trying to run this from Perl or
>> a crontab that calls a Perl script who executes your Ant script?
>>
>> I'm not following the problem :(  Sorry about that...
>>
>> Arun wrote:
>>     
>>> Scot,
>>> Thanks a lot for the reply. You are correct. I was not sourcing it . But
>>> When I echo the variable CATALINA_HOME from perl script it is an empty
>>> string causing the same effect.
>>> Take a peek at my perl script which runs as cron task.
>>> This script updates from sourceforge cvs and redeploys to tomcat using
>>>       
>> ant.
>>     
>>> #!/usr/bin/perl
>>> my $home="/home/build";
>>> my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
>>> my $TRUE='true';
>>> my $checkoutcvs=$ARGV[0];
>>> my $clean=$ARGV[1];
>>> chdir '/home/build/mobchannel';
>>> print "Usage: ./autobuild [checkout] [clean]\n";
>>> print "The values for checkout and clean can be true or false or nothing
>>>       
>> for
>>     
>>> default\n";
>>> print "Default values are checkout=false and clean=false\n";
>>> print "checkout ? $checkoutcvs \n";
>>> `. /root/.bashrc`;
>>> print "CATALINA_HOME = ${CATALINA_HOME}";
>>> if($clean eq $TRUE)
>>> {
>>> `rm -rf mobchannelWEB`;
>>> }
>>> else
>>> {
>>> $checkoutcvs='false';
>>> }
>>>
>>> if($checkoutcvs eq $TRUE)
>>> {
>>> print "Checking out from CVS\n";
>>> `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net
>>>       
>> :/cvsroot/mobchannel"
>>     
>>> co  mobchannelWEB`;
>>> }
>>> else
>>> {
>>> $clean='false';
>>> }
>>>
>>> print "Changed dir to mobchannelWEB\n\n";
>>> chdir 'mobchannelWEB';
>>> print "Starting Build...............\n";
>>> `rm -rf build.log`;
>>> `ant -logfile build.log `;
>>>
>>> my $failed=`grep "BUILD FAILED" build.log`;
>>> if($failed)
>>> {
>>> print "BUILD FAILED";
>>> my $tlog=`tail -1000 build.log`;
>>> print "$tlog ";
>>> }
>>> else
>>> {
>>> print "Stopping Server , stand by...............\n";
>>> `catalina stop`;
>>> `pkill -9 java`;
>>> print "Server stopped ...............\n\n\n";
>>> `rm -rf $tomcathome/webapps/mobchannelWEB`;
>>> print "Removing context MobchannelWEB ...............\n";
>>> #`rm -rf $home/temp`;
>>> `mkdir $tomcathome/webapps/mobchannelWEB`;
>>> #`mkdir $home/temp`;
>>> print "Deploying Context mobchannelWEB ...............\n";
>>> `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
>>> #`cp -r WebRoot/* $home/temp`;
>>> chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
>>> `find . -type f | xargs grep  -l '
>>>       
>> mobchannel.database.user.password=fiddle'
>>     
>>> | xargs sed -i '' -e
>>>
>>>       
>> 's/mobchannel.database.user.password=fiddle/mobchannel.database.user.password=mobchannel/g'`;
>>     
>>> print "Starting Server ...............\n";
>>> `catalina start`;
>>> }
>>> print " Sending mail.....\n";
>>> chdir '/home/build/mobchannel/mobchannelWEB';
>>> `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>>>
>>>       
>>>> Sorry, by script I mean something that resembles the cron entry I
>>>> listed...
>>>>
>>>> Scot P. Floess wrote:
>>>>
>>>>         
>>>>> Arun:
>>>>>
>>>>> I believe your problem is related to the way in which cron is
>>>>> running.  I don't believe your .bashrc is being sourced.  You may need
>>>>> to either write a script to kick off your ant tasks or perhaps make
>>>>> the cron entry resemble something like
>>>>>
>>>>> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you
>>>>> call]
>>>>>
>>>>> Please note the preceeding dot in
>>>>>
>>>>> . ~/.bashrc
>>>>>
>>>>> This will source your bashrc and apply whatever is set there to the
>>>>> currently running shell...
>>>>>
>>>>> Arun wrote:
>>>>>
>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>>  have a problem running ant script as a cronjob. The cron tells
>>>>>>
>>>>>> BUILD FAILED
>>>>>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
>>>>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
>>>>>>
>>>>>>             
>>>> found.
>>>>
>>>>         
>>>>>> But when I directly execute the build.xml using ant this error does
>>>>>>             
>> not
>>     
>>>>>> occur.
>>>>>>
>>>>>>
>>>>>>  <property environment="env" />
>>>>>>
>>>>>>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
>>>>>>         <property name="webapp.name" value="mobchannelWEB" />
>>>>>>
>>>>>>         <property name="java.home" value="${env.JAVA_HOME}" />
>>>>>>         <property name="webapp.path" value="WebRoot" />
>>>>>>         <target name="jspc">
>>>>>>                 <taskdef classname="org.apache.jasper.JspC"
>>>>>> name="jasper2">
>>>>>>                         <classpath id="jspc.classpath">
>>>>>>                                 <pathelement location="${
>>>>>> java.home}/../lib/tools.jar"
>>>>>> />
>>>>>>                                 <fileset dir="${tomcat.home}/bin">
>>>>>>
>>>>>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
>>>>>>
>>>>>> The ${tomcat.home}/bin is getting expanded to path
>>>>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
>>>>>>
>>>>>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
>>>>>>
>>>>>> Why does my ant script do this when run from a cronjob using perl
>>>>>> script.
>>>>>>
>>>>>> Obviously the env property should be empty. I am calling ant -logfile
>>>>>> build.log from my perl script. And I am including the perlscript as a
>>>>>> cron
>>>>>> job.
>>>>>>
>>>>>> How can I pass the environment to ant. I have my CATALIN_HOME entry
>>>>>>             
>> in
>>     
>>>>>> ~/.bashrc. And When I echo in console I can see that too.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>> --
>>>> Scot P. Floess
>>>> 27 Lake Royale
>>>> Louisburg, NC  27549
>>>>
>>>> 252-478-8087 (Home)
>>>> 919-754-4592 (Work)
>>>>
>>>> Chief Architect JPlate  http://sourceforge.net/projects/jplate
>>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>> For additional commands, e-mail: user-help@ant.apache.org
>>>>
>>>>
>>>>
>>>>         
>>>
>>>       
>> --
>> Scot P. Floess
>> 27 Lake Royale
>> Louisburg, NC  27549
>>
>> 252-478-8087 (Home)
>> 919-754-4592 (Work)
>>
>> Chief Architect JPlate  http://sourceforge.net/projects/jplate
>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>>
>>
>>     
>
>
>   

-- 
Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate  http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim


Re: Passing environment to cron

Posted by Arun <ar...@gmail.com>.
Sorry,
I am calling ant from the Perl script , not the other way. I tried sourcing
.bashrc in perl using the dot command as mentioned by scot. But when I use
dot command I get 'shopt: not found' , so I changed that to source
/root/.bashrc. Then also I am not able to get it to work. I have tried the
perl hack . Its working.
Thanks for your time .


On 10/22/07, Russell, Archie <ar...@merck.com> wrote:
>
>
> Hi Arun,
>
> Sourcing your .bashrc from inside your perl script won't have the effect
> you want.   Have you tried Scott's advice?   First source the .bashrc
> then kick off ant.
>
>
> `. /root/.bashrc`;   <-- starts new shell, sets up environment for THAT
> shell only, then disappears.
> print "CATALINA_HOME = ${CATALINA_HOME}";   <-- won't work.
>
>
> Alternatively, instead of running "someprogram.pl" from ant, run a
> command like  ". /root/.bashrc;  someprogram.pl".
>
> If you can't get this to work you can hack it with a line in your Perl
> code that says
>
> $ENV{"CATALINA_HOME"} = "whateverpathyouwant";
>
> Archie
>
>
> -----Original Message-----
> From: Arun [mailto:arun.george.1981@gmail.com]
> Sent: Saturday, October 20, 2007 11:41 AM
> To: Ant Users List
> Subject: Re: Passing environment to cron
>
> Scot,
>
> Ok,
> yes a crontab calls the perl script and executes the ant script.
> The line
> `ant -logfile build.log` executes the ant. But I sourced the bashrc in
> perl.
> But still the same.
> Any ideas.?
>
>
> On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
> >
> > Arun:
> >
> > Sorry I don't know any Perl :(
> >
> > So what is the problem exactly?  You are trying to run this from Perl
> or
> > a crontab that calls a Perl script who executes your Ant script?
> >
> > I'm not following the problem :(  Sorry about that...
> >
> > Arun wrote:
> > > Scot,
> > > Thanks a lot for the reply. You are correct. I was not sourcing it .
> But
> > > When I echo the variable CATALINA_HOME from perl script it is an
> empty
> > > string causing the same effect.
> > > Take a peek at my perl script which runs as cron task.
> > > This script updates from sourceforge cvs and redeploys to tomcat
> using
> > ant.
> > >
> > > #!/usr/bin/perl
> > > my $home="/home/build";
> > > my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
> > > my $TRUE='true';
> > > my $checkoutcvs=$ARGV[0];
> > > my $clean=$ARGV[1];
> > > chdir '/home/build/mobchannel';
> > > print "Usage: ./autobuild [checkout] [clean]\n";
> > > print "The values for checkout and clean can be true or false or
> nothing
> > for
> > > default\n";
> > > print "Default values are checkout=false and clean=false\n";
> > > print "checkout ? $checkoutcvs \n";
> > > `. /root/.bashrc`;
> > > print "CATALINA_HOME = ${CATALINA_HOME}";
> > > if($clean eq $TRUE)
> > > {
> > > `rm -rf mobchannelWEB`;
> > > }
> > > else
> > > {
> > > $checkoutcvs='false';
> > > }
> > >
> > > if($checkoutcvs eq $TRUE)
> > > {
> > > print "Checking out from CVS\n";
> > > `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net
> > :/cvsroot/mobchannel"
> > > co  mobchannelWEB`;
> > > }
> > > else
> > > {
> > > $clean='false';
> > > }
> > >
> > > print "Changed dir to mobchannelWEB\n\n";
> > > chdir 'mobchannelWEB';
> > > print "Starting Build...............\n";
> > > `rm -rf build.log`;
> > > `ant -logfile build.log `;
> > >
> > > my $failed=`grep "BUILD FAILED" build.log`;
> > > if($failed)
> > > {
> > > print "BUILD FAILED";
> > > my $tlog=`tail -1000 build.log`;
> > > print "$tlog ";
> > > }
> > > else
> > > {
> > > print "Stopping Server , stand by...............\n";
> > > `catalina stop`;
> > > `pkill -9 java`;
> > > print "Server stopped ...............\n\n\n";
> > > `rm -rf $tomcathome/webapps/mobchannelWEB`;
> > > print "Removing context MobchannelWEB ...............\n";
> > > #`rm -rf $home/temp`;
> > > `mkdir $tomcathome/webapps/mobchannelWEB`;
> > > #`mkdir $home/temp`;
> > > print "Deploying Context mobchannelWEB ...............\n";
> > > `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
> > > #`cp -r WebRoot/* $home/temp`;
> > > chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
> > > `find . -type f | xargs grep  -l '
> > mobchannel.database.user.password=fiddle'
> > > | xargs sed -i '' -e
> > >
> >
> 's/mobchannel.database.user.password=fiddle/mobchannel.database.user.pas
> sword=mobchannel/g'`;
> > > print "Starting Server ...............\n";
> > > `catalina start`;
> > > }
> > > print " Sending mail.....\n";
> > > chdir '/home/build/mobchannel/mobchannelWEB';
> > > `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
> > >
> > >> Sorry, by script I mean something that resembles the cron entry I
> > >> listed...
> > >>
> > >> Scot P. Floess wrote:
> > >>
> > >>> Arun:
> > >>>
> > >>> I believe your problem is related to the way in which cron is
> > >>> running.  I don't believe your .bashrc is being sourced.  You may
> need
> > >>> to either write a script to kick off your ant tasks or perhaps
> make
> > >>> the cron entry resemble something like
> > >>>
> > >>> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks
> you
> > >>> call]
> > >>>
> > >>> Please note the preceeding dot in
> > >>>
> > >>> . ~/.bashrc
> > >>>
> > >>> This will source your bashrc and apply whatever is set there to
> the
> > >>> currently running shell...
> > >>>
> > >>> Arun wrote:
> > >>>
> > >>>> Hi,
> > >>>>
> > >>>>  have a problem running ant script as a cronjob. The cron tells
> > >>>>
> > >>>> BUILD FAILED
> > >>>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> > >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
> > >>>>
> > >> found.
> > >>
> > >>>> But when I directly execute the build.xml using ant this error
> does
> > not
> > >>>> occur.
> > >>>>
> > >>>>
> > >>>>  <property environment="env" />
> > >>>>
> > >>>>         <property name="tomcat.home" value="${env.CATALINA_HOME}"
> />
> > >>>>         <property name="webapp.name" value="mobchannelWEB" />
> > >>>>
> > >>>>         <property name="java.home" value="${env.JAVA_HOME}" />
> > >>>>         <property name="webapp.path" value="WebRoot" />
> > >>>>         <target name="jspc">
> > >>>>                 <taskdef classname="org.apache.jasper.JspC"
> > >>>> name="jasper2">
> > >>>>                         <classpath id="jspc.classpath">
> > >>>>                                 <pathelement location="${
> > >>>> java.home}/../lib/tools.jar"
> > >>>> />
> > >>>>                                 <fileset
> dir="${tomcat.home}/bin">
> > >>>>
> > >>>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
> > >>>>
> > >>>> The ${tomcat.home}/bin is getting expanded to path
> > >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
> > >>>>
> > >>>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
> > >>>>
> > >>>> Why does my ant script do this when run from a cronjob using perl
> > >>>> script.
> > >>>>
> > >>>> Obviously the env property should be empty. I am calling ant
> -logfile
> > >>>> build.log from my perl script. And I am including the perlscript
> as a
> > >>>> cron
> > >>>> job.
> > >>>>
> > >>>> How can I pass the environment to ant. I have my CATALIN_HOME
> entry
> > in
> > >>>> ~/.bashrc. And When I echo in console I can see that too.
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >> --
> > >> Scot P. Floess
> > >> 27 Lake Royale
> > >> Louisburg, NC  27549
> > >>
> > >> 252-478-8087 (Home)
> > >> 919-754-4592 (Work)
> > >>
> > >> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> > >> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
> > >>
> > >>
> > >>
> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > >> For additional commands, e-mail: user-help@ant.apache.org
> > >>
> > >>
> > >>
> > >
> > >
> > >
> >
> > --
> > Scot P. Floess
> > 27 Lake Royale
> > Louisburg, NC  27549
> >
> > 252-478-8087 (Home)
> > 919-754-4592 (Work)
> >
> > Chief Architect JPlate  http://sourceforge.net/projects/jplate
> > Chief Architect JavaPIM http://sourceforge.net/projects/javapim
> >
> >
>
>
> --
> Thanks
> Arun George
>
>
>
> ------------------------------------------------------------------------------
> Notice:  This e-mail message, together with any attachments, contains
> information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station,
> New Jersey, USA 08889), and/or its affiliates (which may be known
> outside the United States as Merck Frosst, Merck Sharp & Dohme or MSD
> and in Japan, as Banyu - direct contact information for affiliates is
> available at http://www.merck.com/contact/contacts.html) that may be
> confidential, proprietary copyrighted and/or legally privileged. It is
> intended solely for the use of the individual or entity named on this
> message. If you are not the intended recipient, and have received this
> message in error, please notify us immediately by reply e-mail and then
> delete it from your system.
>
>
> ------------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>


-- 
Thanks
Arun George

RE: Passing environment to cron

Posted by "Russell, Archie" <ar...@merck.com>.
Hi Arun,

Sourcing your .bashrc from inside your perl script won't have the effect
you want.   Have you tried Scott's advice?   First source the .bashrc
then kick off ant.


`. /root/.bashrc`;   <-- starts new shell, sets up environment for THAT
shell only, then disappears.
print "CATALINA_HOME = ${CATALINA_HOME}";   <-- won't work.   


Alternatively, instead of running "someprogram.pl" from ant, run a
command like  ". /root/.bashrc;  someprogram.pl".

If you can't get this to work you can hack it with a line in your Perl
code that says

$ENV{"CATALINA_HOME"} = "whateverpathyouwant";

Archie


-----Original Message-----
From: Arun [mailto:arun.george.1981@gmail.com] 
Sent: Saturday, October 20, 2007 11:41 AM
To: Ant Users List
Subject: Re: Passing environment to cron

Scot,

Ok,
yes a crontab calls the perl script and executes the ant script.
The line
`ant -logfile build.log` executes the ant. But I sourced the bashrc in
perl.
But still the same.
Any ideas.?


On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>
> Arun:
>
> Sorry I don't know any Perl :(
>
> So what is the problem exactly?  You are trying to run this from Perl
or
> a crontab that calls a Perl script who executes your Ant script?
>
> I'm not following the problem :(  Sorry about that...
>
> Arun wrote:
> > Scot,
> > Thanks a lot for the reply. You are correct. I was not sourcing it .
But
> > When I echo the variable CATALINA_HOME from perl script it is an
empty
> > string causing the same effect.
> > Take a peek at my perl script which runs as cron task.
> > This script updates from sourceforge cvs and redeploys to tomcat
using
> ant.
> >
> > #!/usr/bin/perl
> > my $home="/home/build";
> > my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
> > my $TRUE='true';
> > my $checkoutcvs=$ARGV[0];
> > my $clean=$ARGV[1];
> > chdir '/home/build/mobchannel';
> > print "Usage: ./autobuild [checkout] [clean]\n";
> > print "The values for checkout and clean can be true or false or
nothing
> for
> > default\n";
> > print "Default values are checkout=false and clean=false\n";
> > print "checkout ? $checkoutcvs \n";
> > `. /root/.bashrc`;
> > print "CATALINA_HOME = ${CATALINA_HOME}";
> > if($clean eq $TRUE)
> > {
> > `rm -rf mobchannelWEB`;
> > }
> > else
> > {
> > $checkoutcvs='false';
> > }
> >
> > if($checkoutcvs eq $TRUE)
> > {
> > print "Checking out from CVS\n";
> > `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net
> :/cvsroot/mobchannel"
> > co  mobchannelWEB`;
> > }
> > else
> > {
> > $clean='false';
> > }
> >
> > print "Changed dir to mobchannelWEB\n\n";
> > chdir 'mobchannelWEB';
> > print "Starting Build...............\n";
> > `rm -rf build.log`;
> > `ant -logfile build.log `;
> >
> > my $failed=`grep "BUILD FAILED" build.log`;
> > if($failed)
> > {
> > print "BUILD FAILED";
> > my $tlog=`tail -1000 build.log`;
> > print "$tlog ";
> > }
> > else
> > {
> > print "Stopping Server , stand by...............\n";
> > `catalina stop`;
> > `pkill -9 java`;
> > print "Server stopped ...............\n\n\n";
> > `rm -rf $tomcathome/webapps/mobchannelWEB`;
> > print "Removing context MobchannelWEB ...............\n";
> > #`rm -rf $home/temp`;
> > `mkdir $tomcathome/webapps/mobchannelWEB`;
> > #`mkdir $home/temp`;
> > print "Deploying Context mobchannelWEB ...............\n";
> > `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
> > #`cp -r WebRoot/* $home/temp`;
> > chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
> > `find . -type f | xargs grep  -l '
> mobchannel.database.user.password=fiddle'
> > | xargs sed -i '' -e
> >
>
's/mobchannel.database.user.password=fiddle/mobchannel.database.user.pas
sword=mobchannel/g'`;
> > print "Starting Server ...............\n";
> > `catalina start`;
> > }
> > print " Sending mail.....\n";
> > chdir '/home/build/mobchannel/mobchannelWEB';
> > `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
> >
> >
> >
> >
> >
> >
> >
> >
> > On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
> >
> >> Sorry, by script I mean something that resembles the cron entry I
> >> listed...
> >>
> >> Scot P. Floess wrote:
> >>
> >>> Arun:
> >>>
> >>> I believe your problem is related to the way in which cron is
> >>> running.  I don't believe your .bashrc is being sourced.  You may
need
> >>> to either write a script to kick off your ant tasks or perhaps
make
> >>> the cron entry resemble something like
> >>>
> >>> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks
you
> >>> call]
> >>>
> >>> Please note the preceeding dot in
> >>>
> >>> . ~/.bashrc
> >>>
> >>> This will source your bashrc and apply whatever is set there to
the
> >>> currently running shell...
> >>>
> >>> Arun wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>>  have a problem running ant script as a cronjob. The cron tells
> >>>>
> >>>> BUILD FAILED
> >>>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
> >>>>
> >> found.
> >>
> >>>> But when I directly execute the build.xml using ant this error
does
> not
> >>>> occur.
> >>>>
> >>>>
> >>>>  <property environment="env" />
> >>>>
> >>>>         <property name="tomcat.home" value="${env.CATALINA_HOME}"
/>
> >>>>         <property name="webapp.name" value="mobchannelWEB" />
> >>>>
> >>>>         <property name="java.home" value="${env.JAVA_HOME}" />
> >>>>         <property name="webapp.path" value="WebRoot" />
> >>>>         <target name="jspc">
> >>>>                 <taskdef classname="org.apache.jasper.JspC"
> >>>> name="jasper2">
> >>>>                         <classpath id="jspc.classpath">
> >>>>                                 <pathelement location="${
> >>>> java.home}/../lib/tools.jar"
> >>>> />
> >>>>                                 <fileset
dir="${tomcat.home}/bin">
> >>>>
> >>>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
> >>>>
> >>>> The ${tomcat.home}/bin is getting expanded to path
> >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
> >>>>
> >>>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
> >>>>
> >>>> Why does my ant script do this when run from a cronjob using perl
> >>>> script.
> >>>>
> >>>> Obviously the env property should be empty. I am calling ant
-logfile
> >>>> build.log from my perl script. And I am including the perlscript
as a
> >>>> cron
> >>>> job.
> >>>>
> >>>> How can I pass the environment to ant. I have my CATALIN_HOME
entry
> in
> >>>> ~/.bashrc. And When I echo in console I can see that too.
> >>>>
> >>>>
> >>>>
> >>>>
> >> --
> >> Scot P. Floess
> >> 27 Lake Royale
> >> Louisburg, NC  27549
> >>
> >> 252-478-8087 (Home)
> >> 919-754-4592 (Work)
> >>
> >> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> >> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
> >>
> >>
> >>
---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >> For additional commands, e-mail: user-help@ant.apache.org
> >>
> >>
> >>
> >
> >
> >
>
> --
> Scot P. Floess
> 27 Lake Royale
> Louisburg, NC  27549
>
> 252-478-8087 (Home)
> 919-754-4592 (Work)
>
> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>
>


-- 
Thanks
Arun George


------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments, contains
information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station,
New Jersey, USA 08889), and/or its affiliates (which may be known
outside the United States as Merck Frosst, Merck Sharp & Dohme or MSD
and in Japan, as Banyu - direct contact information for affiliates is 
available at http://www.merck.com/contact/contacts.html) that may be 
confidential, proprietary copyrighted and/or legally privileged. It is 
intended solely for the use of the individual or entity named on this 
message. If you are not the intended recipient, and have received this 
message in error, please notify us immediately by reply e-mail and then 
delete it from your system.

------------------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Passing environment to cron

Posted by Arun <ar...@gmail.com>.
Scot,

Ok,
yes a crontab calls the perl script and executes the ant script.
The line
`ant -logfile build.log` executes the ant. But I sourced the bashrc in perl.
But still the same.
Any ideas.?


On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>
> Arun:
>
> Sorry I don't know any Perl :(
>
> So what is the problem exactly?  You are trying to run this from Perl or
> a crontab that calls a Perl script who executes your Ant script?
>
> I'm not following the problem :(  Sorry about that...
>
> Arun wrote:
> > Scot,
> > Thanks a lot for the reply. You are correct. I was not sourcing it . But
> > When I echo the variable CATALINA_HOME from perl script it is an empty
> > string causing the same effect.
> > Take a peek at my perl script which runs as cron task.
> > This script updates from sourceforge cvs and redeploys to tomcat using
> ant.
> >
> > #!/usr/bin/perl
> > my $home="/home/build";
> > my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
> > my $TRUE='true';
> > my $checkoutcvs=$ARGV[0];
> > my $clean=$ARGV[1];
> > chdir '/home/build/mobchannel';
> > print "Usage: ./autobuild [checkout] [clean]\n";
> > print "The values for checkout and clean can be true or false or nothing
> for
> > default\n";
> > print "Default values are checkout=false and clean=false\n";
> > print "checkout ? $checkoutcvs \n";
> > `. /root/.bashrc`;
> > print "CATALINA_HOME = ${CATALINA_HOME}";
> > if($clean eq $TRUE)
> > {
> > `rm -rf mobchannelWEB`;
> > }
> > else
> > {
> > $checkoutcvs='false';
> > }
> >
> > if($checkoutcvs eq $TRUE)
> > {
> > print "Checking out from CVS\n";
> > `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net
> :/cvsroot/mobchannel"
> > co  mobchannelWEB`;
> > }
> > else
> > {
> > $clean='false';
> > }
> >
> > print "Changed dir to mobchannelWEB\n\n";
> > chdir 'mobchannelWEB';
> > print "Starting Build...............\n";
> > `rm -rf build.log`;
> > `ant -logfile build.log `;
> >
> > my $failed=`grep "BUILD FAILED" build.log`;
> > if($failed)
> > {
> > print "BUILD FAILED";
> > my $tlog=`tail -1000 build.log`;
> > print "$tlog ";
> > }
> > else
> > {
> > print "Stopping Server , stand by...............\n";
> > `catalina stop`;
> > `pkill -9 java`;
> > print "Server stopped ...............\n\n\n";
> > `rm -rf $tomcathome/webapps/mobchannelWEB`;
> > print "Removing context MobchannelWEB ...............\n";
> > #`rm -rf $home/temp`;
> > `mkdir $tomcathome/webapps/mobchannelWEB`;
> > #`mkdir $home/temp`;
> > print "Deploying Context mobchannelWEB ...............\n";
> > `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
> > #`cp -r WebRoot/* $home/temp`;
> > chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
> > `find . -type f | xargs grep  -l '
> mobchannel.database.user.password=fiddle'
> > | xargs sed -i '' -e
> >
> 's/mobchannel.database.user.password=fiddle/mobchannel.database.user.password=mobchannel/g'`;
> > print "Starting Server ...............\n";
> > `catalina start`;
> > }
> > print " Sending mail.....\n";
> > chdir '/home/build/mobchannel/mobchannelWEB';
> > `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
> >
> >
> >
> >
> >
> >
> >
> >
> > On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
> >
> >> Sorry, by script I mean something that resembles the cron entry I
> >> listed...
> >>
> >> Scot P. Floess wrote:
> >>
> >>> Arun:
> >>>
> >>> I believe your problem is related to the way in which cron is
> >>> running.  I don't believe your .bashrc is being sourced.  You may need
> >>> to either write a script to kick off your ant tasks or perhaps make
> >>> the cron entry resemble something like
> >>>
> >>> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you
> >>> call]
> >>>
> >>> Please note the preceeding dot in
> >>>
> >>> . ~/.bashrc
> >>>
> >>> This will source your bashrc and apply whatever is set there to the
> >>> currently running shell...
> >>>
> >>> Arun wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>>  have a problem running ant script as a cronjob. The cron tells
> >>>>
> >>>> BUILD FAILED
> >>>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
> >>>>
> >> found.
> >>
> >>>> But when I directly execute the build.xml using ant this error does
> not
> >>>> occur.
> >>>>
> >>>>
> >>>>  <property environment="env" />
> >>>>
> >>>>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
> >>>>         <property name="webapp.name" value="mobchannelWEB" />
> >>>>
> >>>>         <property name="java.home" value="${env.JAVA_HOME}" />
> >>>>         <property name="webapp.path" value="WebRoot" />
> >>>>         <target name="jspc">
> >>>>                 <taskdef classname="org.apache.jasper.JspC"
> >>>> name="jasper2">
> >>>>                         <classpath id="jspc.classpath">
> >>>>                                 <pathelement location="${
> >>>> java.home}/../lib/tools.jar"
> >>>> />
> >>>>                                 <fileset dir="${tomcat.home}/bin">
> >>>>
> >>>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
> >>>>
> >>>> The ${tomcat.home}/bin is getting expanded to path
> >>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
> >>>>
> >>>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
> >>>>
> >>>> Why does my ant script do this when run from a cronjob using perl
> >>>> script.
> >>>>
> >>>> Obviously the env property should be empty. I am calling ant -logfile
> >>>> build.log from my perl script. And I am including the perlscript as a
> >>>> cron
> >>>> job.
> >>>>
> >>>> How can I pass the environment to ant. I have my CATALIN_HOME entry
> in
> >>>> ~/.bashrc. And When I echo in console I can see that too.
> >>>>
> >>>>
> >>>>
> >>>>
> >> --
> >> Scot P. Floess
> >> 27 Lake Royale
> >> Louisburg, NC  27549
> >>
> >> 252-478-8087 (Home)
> >> 919-754-4592 (Work)
> >>
> >> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> >> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >> For additional commands, e-mail: user-help@ant.apache.org
> >>
> >>
> >>
> >
> >
> >
>
> --
> Scot P. Floess
> 27 Lake Royale
> Louisburg, NC  27549
>
> 252-478-8087 (Home)
> 919-754-4592 (Work)
>
> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>
>


-- 
Thanks
Arun George

Re: Passing environment to cron

Posted by "Scot P. Floess" <fl...@mindspring.com>.
Arun:

Sorry I don't know any Perl :(

So what is the problem exactly?  You are trying to run this from Perl or 
a crontab that calls a Perl script who executes your Ant script?

I'm not following the problem :(  Sorry about that...

Arun wrote:
> Scot,
> Thanks a lot for the reply. You are correct. I was not sourcing it . But
> When I echo the variable CATALINA_HOME from perl script it is an empty
> string causing the same effect.
> Take a peek at my perl script which runs as cron task.
> This script updates from sourceforge cvs and redeploys to tomcat using ant.
>
> #!/usr/bin/perl
> my $home="/home/build";
> my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
> my $TRUE='true';
> my $checkoutcvs=$ARGV[0];
> my $clean=$ARGV[1];
> chdir '/home/build/mobchannel';
> print "Usage: ./autobuild [checkout] [clean]\n";
> print "The values for checkout and clean can be true or false or nothing for
> default\n";
> print "Default values are checkout=false and clean=false\n";
> print "checkout ? $checkoutcvs \n";
> `. /root/.bashrc`;
> print "CATALINA_HOME = ${CATALINA_HOME}";
> if($clean eq $TRUE)
> {
> `rm -rf mobchannelWEB`;
> }
> else
> {
> $checkoutcvs='false';
> }
>
> if($checkoutcvs eq $TRUE)
> {
> print "Checking out from CVS\n";
> `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net:/cvsroot/mobchannel"
> co  mobchannelWEB`;
> }
> else
> {
> $clean='false';
> }
>
> print "Changed dir to mobchannelWEB\n\n";
> chdir 'mobchannelWEB';
> print "Starting Build...............\n";
> `rm -rf build.log`;
> `ant -logfile build.log `;
>
> my $failed=`grep "BUILD FAILED" build.log`;
> if($failed)
> {
> print "BUILD FAILED";
> my $tlog=`tail -1000 build.log`;
> print "$tlog ";
> }
> else
> {
> print "Stopping Server , stand by...............\n";
> `catalina stop`;
> `pkill -9 java`;
> print "Server stopped ...............\n\n\n";
> `rm -rf $tomcathome/webapps/mobchannelWEB`;
> print "Removing context MobchannelWEB ...............\n";
> #`rm -rf $home/temp`;
> `mkdir $tomcathome/webapps/mobchannelWEB`;
> #`mkdir $home/temp`;
> print "Deploying Context mobchannelWEB ...............\n";
> `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
> #`cp -r WebRoot/* $home/temp`;
> chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
> `find . -type f | xargs grep  -l 'mobchannel.database.user.password=fiddle'
> | xargs sed -i '' -e
> 's/mobchannel.database.user.password=fiddle/mobchannel.database.user.password=mobchannel/g'`;
> print "Starting Server ...............\n";
> `catalina start`;
> }
> print " Sending mail.....\n";
> chdir '/home/build/mobchannel/mobchannelWEB';
> `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
>
>
>
>
>
>
>
>
> On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>   
>> Sorry, by script I mean something that resembles the cron entry I
>> listed...
>>
>> Scot P. Floess wrote:
>>     
>>> Arun:
>>>
>>> I believe your problem is related to the way in which cron is
>>> running.  I don't believe your .bashrc is being sourced.  You may need
>>> to either write a script to kick off your ant tasks or perhaps make
>>> the cron entry resemble something like
>>>
>>> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you
>>> call]
>>>
>>> Please note the preceeding dot in
>>>
>>> . ~/.bashrc
>>>
>>> This will source your bashrc and apply whatever is set there to the
>>> currently running shell...
>>>
>>> Arun wrote:
>>>       
>>>> Hi,
>>>>
>>>>  have a problem running ant script as a cronjob. The cron tells
>>>>
>>>> BUILD FAILED
>>>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
>>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
>>>>         
>> found.
>>     
>>>> But when I directly execute the build.xml using ant this error does not
>>>> occur.
>>>>
>>>>
>>>>  <property environment="env" />
>>>>
>>>>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
>>>>         <property name="webapp.name" value="mobchannelWEB" />
>>>>
>>>>         <property name="java.home" value="${env.JAVA_HOME}" />
>>>>         <property name="webapp.path" value="WebRoot" />
>>>>         <target name="jspc">
>>>>                 <taskdef classname="org.apache.jasper.JspC"
>>>> name="jasper2">
>>>>                         <classpath id="jspc.classpath">
>>>>                                 <pathelement location="${
>>>> java.home}/../lib/tools.jar"
>>>> />
>>>>                                 <fileset dir="${tomcat.home}/bin">
>>>>
>>>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
>>>>
>>>> The ${tomcat.home}/bin is getting expanded to path
>>>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
>>>>
>>>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
>>>>
>>>> Why does my ant script do this when run from a cronjob using perl
>>>> script.
>>>>
>>>> Obviously the env property should be empty. I am calling ant -logfile
>>>> build.log from my perl script. And I am including the perlscript as a
>>>> cron
>>>> job.
>>>>
>>>> How can I pass the environment to ant. I have my CATALIN_HOME entry in
>>>> ~/.bashrc. And When I echo in console I can see that too.
>>>>
>>>>
>>>>
>>>>         
>> --
>> Scot P. Floess
>> 27 Lake Royale
>> Louisburg, NC  27549
>>
>> 252-478-8087 (Home)
>> 919-754-4592 (Work)
>>
>> Chief Architect JPlate  http://sourceforge.net/projects/jplate
>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>>
>>
>>     
>
>
>   

-- 
Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate  http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim


Re: Passing environment to cron

Posted by Arun <ar...@gmail.com>.
Sorry for putting in to, I just cliked reply and gmail added you too in
reply list.

On 10/20/07, Arun <ar...@gmail.com> wrote:
>
> Scot,
> Thanks a lot for the reply. You are correct. I was not sourcing it . But
> When I echo the variable CATALINA_HOME from perl script it is an empty
> string causing the same effect.
> Take a peek at my perl script which runs as cron task.
> This script updates from sourceforge cvs and redeploys to tomcat using
> ant.
>
> #!/usr/bin/perl
> my $home="/home/build";
> my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
> my $TRUE='true';
> my $checkoutcvs=$ARGV[0];
> my $clean=$ARGV[1];
> chdir '/home/build/mobchannel';
> print "Usage: ./autobuild [checkout] [clean]\n";
> print "The values for checkout and clean can be true or false or nothing
> for default\n";
> print "Default values are checkout=false and clean=false\n";
> print "checkout ? $checkoutcvs \n";
> `. /root/.bashrc`;
> print "CATALINA_HOME = ${CATALINA_HOME}";
> if($clean eq $TRUE)
> {
> `rm -rf mobchannelWEB`;
> }
> else
> {
> $checkoutcvs='false';
> }
>
> if($checkoutcvs eq $TRUE)
> {
> print "Checking out from CVS\n";
> `cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net:/cvsroot/mobchannel"
> co  mobchannelWEB`;
> }
> else
> {
> $clean='false';
> }
>
> print "Changed dir to mobchannelWEB\n\n";
> chdir 'mobchannelWEB';
> print "Starting Build...............\n";
> `rm -rf build.log`;
> `ant -logfile build.log `;
>
> my $failed=`grep "BUILD FAILED" build.log`;
> if($failed)
> {
> print "BUILD FAILED";
> my $tlog=`tail -1000 build.log`;
> print "$tlog ";
> }
> else
> {
> print "Stopping Server , stand by...............\n";
> `catalina stop`;
> `pkill -9 java`;
> print "Server stopped ...............\n\n\n";
> `rm -rf $tomcathome/webapps/mobchannelWEB`;
> print "Removing context MobchannelWEB ...............\n";
> #`rm -rf $home/temp`;
> `mkdir $tomcathome/webapps/mobchannelWEB`;
> #`mkdir $home/temp`;
> print "Deploying Context mobchannelWEB ...............\n";
> `cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
> #`cp -r WebRoot/* $home/temp`;
> chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
> `find . -type f | xargs grep  -l 'mobchannel.database.user.password=fiddle'
> | xargs sed -i '' -e
> 's/mobchannel.database.user.password=fiddle/mobchannel.database.user.password=mobchannel/g'`;
>
> print "Starting Server ...............\n";
> `catalina start`;
> }
> print " Sending mail.....\n";
> chdir '/home/build/mobchannel/mobchannelWEB';
> `/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;
>
>
>
>
>
>
>
>
> On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
> >
> > Sorry, by script I mean something that resembles the cron entry I
> > listed...
> >
> > Scot P. Floess wrote:
> > > Arun:
> > >
> > > I believe your problem is related to the way in which cron is
> > > running.  I don't believe your .bashrc is being sourced.  You may need
> > > to either write a script to kick off your ant tasks or perhaps make
> > > the cron entry resemble something like
> > >
> > > . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you
> > > call]
> > >
> > > Please note the preceeding dot in
> > >
> > > . ~/.bashrc
> > >
> > > This will source your bashrc and apply whatever is set there to the
> > > currently running shell...
> > >
> > > Arun wrote:
> > >> Hi,
> > >>
> > >>  have a problem running ant script as a cronjob. The cron tells
> > >>
> > >> BUILD FAILED
> > >> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> > >> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
> > found.
> > >> But when I directly execute the build.xml using ant this error does
> > not
> > >> occur.
> > >>
> > >>
> > >>  <property environment="env" />
> > >>
> > >>         <property name="tomcat.home" value="${ env.CATALINA_HOME}" />
> > >>         <property name="webapp.name" value="mobchannelWEB" />
> > >>
> > >>         <property name="java.home " value="${env.JAVA_HOME}" />
> > >>         <property name="webapp.path" value="WebRoot" />
> > >>         <target name="jspc">
> > >>                 <taskdef classname=" org.apache.jasper.JspC"
> > >> name="jasper2">
> > >>                         <classpath id="jspc.classpath">
> > >>                                 <pathelement location="${
> > >> java.home}/../lib/tools.jar"
> > >> />
> > >>                                 <fileset dir="${tomcat.home}/bin">
> > >>
> > >>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
> > >>
> > >> The ${tomcat.home}/bin is getting expanded to path
> > >> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
> > >>
> > >> When it should have been /usr/local/bin/apache- tomcat-6.0.13/bin.
> > >>
> > >> Why does my ant script do this when run from a cronjob using perl
> > >> script.
> > >>
> > >> Obviously the env property should be empty. I am calling ant -logfile
> >
> > >> build.log from my perl script. And I am including the perlscript as a
> > >> cron
> > >> job.
> > >>
> > >> How can I pass the environment to ant. I have my CATALIN_HOME entry
> > in
> > >> ~/.bashrc. And When I echo in console I can see that too.
> > >>
> > >>
> > >>
> > >
> >
> > --
> > Scot P. Floess
> > 27 Lake Royale
> > Louisburg, NC  27549
> >
> > 252-478-8087 (Home)
> > 919-754-4592 (Work)
> >
> > Chief Architect JPlate   http://sourceforge.net/projects/jplate
> > Chief Architect JavaPIM http://sourceforge.net/projects/javapim
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
> >
>
>
> --
> Thanks
> Arun George




-- 
Thanks
Arun George

Re: Passing environment to cron

Posted by Arun <ar...@gmail.com>.
Scot,
Thanks a lot for the reply. You are correct. I was not sourcing it . But
When I echo the variable CATALINA_HOME from perl script it is an empty
string causing the same effect.
Take a peek at my perl script which runs as cron task.
This script updates from sourceforge cvs and redeploys to tomcat using ant.

#!/usr/bin/perl
my $home="/home/build";
my $tomcathome="/usr/local/bin/apache-tomcat-6.0.13";
my $TRUE='true';
my $checkoutcvs=$ARGV[0];
my $clean=$ARGV[1];
chdir '/home/build/mobchannel';
print "Usage: ./autobuild [checkout] [clean]\n";
print "The values for checkout and clean can be true or false or nothing for
default\n";
print "Default values are checkout=false and clean=false\n";
print "checkout ? $checkoutcvs \n";
`. /root/.bashrc`;
print "CATALINA_HOME = ${CATALINA_HOME}";
if($clean eq $TRUE)
{
`rm -rf mobchannelWEB`;
}
else
{
$checkoutcvs='false';
}

if($checkoutcvs eq $TRUE)
{
print "Checking out from CVS\n";
`cvs -d ":extssh:arungeorge1981\@mobchannel.cvs.sourceforge.net:/cvsroot/mobchannel"
co  mobchannelWEB`;
}
else
{
$clean='false';
}

print "Changed dir to mobchannelWEB\n\n";
chdir 'mobchannelWEB';
print "Starting Build...............\n";
`rm -rf build.log`;
`ant -logfile build.log `;

my $failed=`grep "BUILD FAILED" build.log`;
if($failed)
{
print "BUILD FAILED";
my $tlog=`tail -1000 build.log`;
print "$tlog ";
}
else
{
print "Stopping Server , stand by...............\n";
`catalina stop`;
`pkill -9 java`;
print "Server stopped ...............\n\n\n";
`rm -rf $tomcathome/webapps/mobchannelWEB`;
print "Removing context MobchannelWEB ...............\n";
#`rm -rf $home/temp`;
`mkdir $tomcathome/webapps/mobchannelWEB`;
#`mkdir $home/temp`;
print "Deploying Context mobchannelWEB ...............\n";
`cp -r WebRoot/* $tomcathome/webapps/mobchannelWEB`;
#`cp -r WebRoot/* $home/temp`;
chdir '/usr/local/bin/apache-tomcat-6.0.13/webapps/mobchannelWEB/';
`find . -type f | xargs grep  -l 'mobchannel.database.user.password=fiddle'
| xargs sed -i '' -e
's/mobchannel.database.user.password=fiddle/mobchannel.database.user.password=mobchannel/g'`;
print "Starting Server ...............\n";
`catalina start`;
}
print " Sending mail.....\n";
chdir '/home/build/mobchannel/mobchannelWEB';
`/home/build/mobchannel/sendMail.pl $checkoutcvs $clean`;








On 10/20/07, Scot P. Floess <fl...@mindspring.com> wrote:
>
> Sorry, by script I mean something that resembles the cron entry I
> listed...
>
> Scot P. Floess wrote:
> > Arun:
> >
> > I believe your problem is related to the way in which cron is
> > running.  I don't believe your .bashrc is being sourced.  You may need
> > to either write a script to kick off your ant tasks or perhaps make
> > the cron entry resemble something like
> >
> > . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you
> > call]
> >
> > Please note the preceeding dot in
> >
> > . ~/.bashrc
> >
> > This will source your bashrc and apply whatever is set there to the
> > currently running shell...
> >
> > Arun wrote:
> >> Hi,
> >>
> >>  have a problem running ant script as a cronjob. The cron tells
> >>
> >> BUILD FAILED
> >> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> >> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not
> found.
> >> But when I directly execute the build.xml using ant this error does not
> >> occur.
> >>
> >>
> >>  <property environment="env" />
> >>
> >>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
> >>         <property name="webapp.name" value="mobchannelWEB" />
> >>
> >>         <property name="java.home" value="${env.JAVA_HOME}" />
> >>         <property name="webapp.path" value="WebRoot" />
> >>         <target name="jspc">
> >>                 <taskdef classname="org.apache.jasper.JspC"
> >> name="jasper2">
> >>                         <classpath id="jspc.classpath">
> >>                                 <pathelement location="${
> >> java.home}/../lib/tools.jar"
> >> />
> >>                                 <fileset dir="${tomcat.home}/bin">
> >>
> >>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
> >>
> >> The ${tomcat.home}/bin is getting expanded to path
> >> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
> >>
> >> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
> >>
> >> Why does my ant script do this when run from a cronjob using perl
> >> script.
> >>
> >> Obviously the env property should be empty. I am calling ant -logfile
> >> build.log from my perl script. And I am including the perlscript as a
> >> cron
> >> job.
> >>
> >> How can I pass the environment to ant. I have my CATALIN_HOME entry in
> >> ~/.bashrc. And When I echo in console I can see that too.
> >>
> >>
> >>
> >
>
> --
> Scot P. Floess
> 27 Lake Royale
> Louisburg, NC  27549
>
> 252-478-8087 (Home)
> 919-754-4592 (Work)
>
> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>


-- 
Thanks
Arun George

Re: Passing environment to cron

Posted by "Scot P. Floess" <fl...@mindspring.com>.
Sorry, by script I mean something that resembles the cron entry I listed...

Scot P. Floess wrote:
> Arun:
>
> I believe your problem is related to the way in which cron is 
> running.  I don't believe your .bashrc is being sourced.  You may need 
> to either write a script to kick off your ant tasks or perhaps make 
> the cron entry resemble something like
>
> . ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you 
> call]
>
> Please note the preceeding dot in
>
> . ~/.bashrc
>
> This will source your bashrc and apply whatever is set there to the 
> currently running shell...
>
> Arun wrote:
>> Hi,
>>
>>  have a problem running ant script as a cronjob. The cron tells
>>
>> BUILD FAILED
>> /home/build/mobchannel/mobchannelWEB/build.xml:230:
>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not found.
>> But when I directly execute the build.xml using ant this error does not
>> occur.
>>
>>
>>  <property environment="env" />
>>
>>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
>>         <property name="webapp.name" value="mobchannelWEB" />
>>
>>         <property name="java.home" value="${env.JAVA_HOME}" />
>>         <property name="webapp.path" value="WebRoot" />
>>         <target name="jspc">
>>                 <taskdef classname="org.apache.jasper.JspC" 
>> name="jasper2">
>>                         <classpath id="jspc.classpath">
>>                                 <pathelement location="${
>> java.home}/../lib/tools.jar"
>> />
>>                                 <fileset dir="${tomcat.home}/bin">
>>
>>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
>>
>> The ${tomcat.home}/bin is getting expanded to path
>> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
>>
>> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
>>
>> Why does my ant script do this when run from a cronjob using perl 
>> script.
>>
>> Obviously the env property should be empty. I am calling ant -logfile
>> build.log from my perl script. And I am including the perlscript as a 
>> cron
>> job.
>>
>> How can I pass the environment to ant. I have my CATALIN_HOME entry in
>> ~/.bashrc. And When I echo in console I can see that too.
>>
>>
>>   
>

-- 
Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate  http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Passing environment to cron

Posted by "Scot P. Floess" <fl...@mindspring.com>.
Arun:

I believe your problem is related to the way in which cron is running.  
I don't believe your .bashrc is being sourced.  You may need to either 
write a script to kick off your ant tasks or perhaps make the cron entry 
resemble something like

. ~/.bashrc ; ant -f [dir to build.xml]/build.xml [whatever tasks you call]

Please note the preceeding dot in

. ~/.bashrc

This will source your bashrc and apply whatever is set there to the 
currently running shell...

Arun wrote:
> Hi,
>
>  have a problem running ant script as a cronjob. The cron tells
>
> BUILD FAILED
> /home/build/mobchannel/mobchannelWEB/build.xml:230:
> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin not found.
> But when I directly execute the build.xml using ant this error does not
> occur.
>
>
>  <property environment="env" />
>
>         <property name="tomcat.home" value="${env.CATALINA_HOME}" />
>         <property name="webapp.name" value="mobchannelWEB" />
>
>         <property name="java.home" value="${env.JAVA_HOME}" />
>         <property name="webapp.path" value="WebRoot" />
>         <target name="jspc">
>                 <taskdef classname="org.apache.jasper.JspC" name="jasper2">
>                         <classpath id="jspc.classpath">
>                                 <pathelement location="${
> java.home}/../lib/tools.jar"
> />
>                                 <fileset dir="${tomcat.home}/bin">
>
>  My CATALIN_HOME points to correctly and so does my JAVA_HOME.
>
> The ${tomcat.home}/bin is getting expanded to path
> /home/build/mobchannel/mobchannelWEB/${env.CATALINA_HOME}/bin .
>
> When it should have been /usr/local/bin/apache-tomcat-6.0.13/bin.
>
> Why does my ant script do this when run from a cronjob using perl script.
>
> Obviously the env property should be empty. I am calling ant -logfile
> build.log from my perl script. And I am including the perlscript as a cron
> job.
>
> How can I pass the environment to ant. I have my CATALIN_HOME entry in
> ~/.bashrc. And When I echo in console I can see that too.
>
>
>   

-- 
Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate  http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org