ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scot P. Floess" <flo...@mindspring.com>
Subject Re: Passing environment to cron
Date Sat, 20 Oct 2007 17:19:09 GMT
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 <floess@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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message