ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arun <arun.george.1...@gmail.com>
Subject Re: Passing environment to cron
Date Sat, 20 Oct 2007 18:41:13 GMT
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
>
>


-- 
Thanks
Arun George

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