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:[EMAIL PROTECTED]:/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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





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

Reply via email to