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 16:50:12 GMT
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
>
>


-- 
Thanks
Arun George

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