ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Russell, Archie" <archie_russ...@merck.com>
Subject RE: Passing environment to cron
Date Sun, 21 Oct 2007 19:04:30 GMT

Hi Arun,

Sourcing your .bashrc from inside your perl script won't have the effect
you want.   Have you tried Scott's advice?   First source the .bashrc
then kick off ant.


`. /root/.bashrc`;   <-- starts new shell, sets up environment for THAT
shell only, then disappears.
print "CATALINA_HOME = ${CATALINA_HOME}";   <-- won't work.   


Alternatively, instead of running "someprogram.pl" from ant, run a
command like  ". /root/.bashrc;  someprogram.pl".

If you can't get this to work you can hack it with a line in your Perl
code that says

$ENV{"CATALINA_HOME"} = "whateverpathyouwant";

Archie


-----Original Message-----
From: Arun [mailto:arun.george.1981@gmail.com] 
Sent: Saturday, October 20, 2007 11:41 AM
To: Ant Users List
Subject: Re: Passing environment to cron

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.pas
sword=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


------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments, contains
information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station,
New Jersey, USA 08889), and/or its affiliates (which may be known
outside the United States as Merck Frosst, Merck Sharp & Dohme or MSD
and in Japan, as Banyu - direct contact information for affiliates is 
available at http://www.merck.com/contact/contacts.html) that may be 
confidential, proprietary copyrighted and/or legally privileged. It is 
intended solely for the use of the individual or entity named on this 
message. If you are not the intended recipient, and have received this 
message in error, please notify us immediately by reply e-mail and then 
delete it from your system.

------------------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message