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 Mon, 22 Oct 2007 05:55:09 GMT
Sorry,
I am calling ant from the Perl script , not the other way. I tried sourcing
.bashrc in perl using the dot command as mentioned by scot. But when I use
dot command I get 'shopt: not found' , so I changed that to source
/root/.bashrc. Then also I am not able to get it to work. I have tried the
perl hack . Its working.
Thanks for your time .


On 10/22/07, Russell, Archie <archie_russell@merck.com> wrote:
>
>
> 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
>
>


-- 
Thanks
Arun George

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