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 Sun, 21 Oct 2007 02:12:57 GMT
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 <floess@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 <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
>>
>>
>>     
>
>
>   

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