ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peter reilly <peter.rei...@corvil.com>
Subject Re: Shell Script
Date Thu, 27 Mar 2003 09:09:34 GMT
The "cannot allocate Pseudo-terminal" is just ssh
whineing that it is run by a program and not by 
a terminal (or something that looks like a terminal)

You may be hanging in the exec executable="ssh" line
because you do not provide std input to ssh, It is now
waiting for input but none is provided.....

I do not see server defined in your script. Also
there is no need to use both exec and shellscript (this
may be just an artifice of your testing).

Here is a shell script that works for me.

  <target name="ssh">
    <shellscript shell="bash">
      set -x
      cd ~/tmp
      ssh serv1 &lt;&lt;END
         cd /tmp
         ls -rlta | grep tt2
END
    </shellscript>
  </target>

and the output is:

ssh:
+ cd /home/preilly/tmp
+ ssh serv1
Pseudo-terminal will not be allocated because stdin is not a terminal.
-rw-r--r--   1 matt      wheel     18624 Mar 13 18:09 tt2

BUILD SUCCESSFUL

good luck,

Peter

On Thursday 27 March 2003 07:11, Michael Taft wrote:
> Thanks for your reply, Peter.
>
> I downloaded the shell script task, but I'm having trouble actually
> getting it to work properly with sourceforge.net
>
> I explained what I'm trying to do earlier (it's included at the bottom
> of this email) so I won't repeat it here. Here's my target for trying to
> accomplish this.
>
>
> <target name="web_zip">
>           <tar tarfile="${base.dir}/FJWeb.tar" basedir="${web.dir}"/>
>           <gzip zipfile="${base.dir}/FJWeb.tar.gz"
> src="${base.dir}/FJWeb.tar"/>
>     </target>
>
>     <!-- Upload to SourceForge.net -->
>
>         <target name="web_release" depends="web_zip">
>         <exec dir="${base.dir}" executable="scp"  output="dir.txt">
>         <arg line="FJWeb.tar.gz
>  michaeltaft@jyotish.sourceforge.net:/home/groups/j/jy/jyotish/htdocs/"/>
>         </exec>
>         <exec dir="${base.dir}" executable="ssh"  output="dir2.txt">
>         <arg line="-l michaeltaft jyotish.sourceforge.net"/>
>         </exec>
>         <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
>         <shellscript shell="bash.exe" >
>              <arg value="cd /home/groups/j/jy/jyotish/htdocs/"/>
>              <arg value="gunzip FJWeb.tar.gz"/>
>             <arg value="tar xf FJWeb.tar"/>
>             <arg value="rm FJWeb.tar"/>
>               ssh ${server} ./script.sh
>        </shellscript>
>
> I realize that this is a clumsy attempt, but it's the best I can do at
> my level of understanding. The web_zip and scp exec both work fine. The
> ssh exec starts to work but it only connects me to sourceforge and then
> gets hung up. Looking at the dir2.txt file I see the following comment:
> Pseudo-terminal will not be allocated because stdin is not a terminal.
>
> I'm not sure if that means it's not working at all, or if it just knows
> not to open the terminal. In any case that's as far as I've been able to
> get with this.
>
> Any help?
>
> peter reilly wrote:
> >Hi,
> >I have included the e-mail discussion on using shellscript and sshexec.
> >
> >shellscript can be received from CVS head of ant-contrib project
> >on sourceforge.
> >
> >http://sourceforge.net/projects/ant-contrib/
> >
> >sshexec can be received from CVS head of ant.
> >Peter.
> >
> >--------------------------//-------------------------------
> >
> >it is of course a lot better to use <sshexec/> than <shellscript/>
> >for this.
> >
> >Also my example contained an error, it should be
> > <shellscript shell="sh"><![CDATA[
> >     ssh ${server} <<END
> > cd /tmp
> > ls -lrta
> > END
> > ]]></shellscript>
> >
> >Peter.
> >
> >On Friday 21 March 2003 16:45, Anderson, Rob H - VSCM wrote:
> >>If you use the sshexec task you do not need to have an ssh client on your
> >>local machine. Obviously, the remote machine needs to be running sshd.
> >>
> >><sshexec host="somehost"
> >>      username="dude"
> >>      keyfile="${user.home}/.ssh/id_dsa"
> >>      passphrase="yo its a secret"
> >>      command="./remotesctipt.sh"/>
> >>
> >>If you want to execute an ant script on the remote machine you will need
> >> to install ant and the scripts on the remote machine. Then run a task
> >> like the following
> >>
> >><sshexec host="somehost"
> >>      username="dude"
> >>      keyfile="${user.home}/.ssh/id_dsa"
> >>      passphrase="yo its a secret"
> >>      command="cd path/to/build/file ; ant targetname"/>
> >>
> >>I hope this helps.
> >>
> >>-Rob Anderson
> >>
> >>-----Original Message-----
> >>From: peter reilly [mailto:peter.reilly@corvil.com]
> >>Sent: Friday, March 21, 2003 3:25 AM
> >>To: Ant Users List
> >>Subject: Re: SSH in ANT?!?! (WAS: RE: process on a remote server via an
> >>ANT ?????)
> >>
> >>
> >>I do not have windows at the moment so take what
> >>I am saying with a grain of salt.
> >>
> >>The question is not really an ant question. So
> >>test everything at the command line first.
> >>
> >>I assume that there is a ssh deamon/service running on
> >>the remote machine and there is a ssh command line
> >>utility in your exec path.
> >>
> >>If the sshd on the remote machine is a the cygwin sshd
> >>and you have cygwin installed correctly on both machines
> >>the script should work as is.
> >>
> >>If cygwin sshd is installed on the remote machine but the
> >>local machine does not have cygwin but does have another
> >>ssh client cli program that can run in a bat file one can do
> >>
> >><shellscript shell="cmd.exe" tmpsuffix=".bat">
> >>    <arg value="/c"/>
> >>     <arg value="call">
> >>      ssh ${server} ./script.sh
> >></shellscript>
> >>
> >>Other combinations you need to try yourself.
> >>
> >>Important to note that the ./script.sh is a file on the remote machine.
> >>
> >>To run a script defined in the ant build file do:
> >>
> >><shellscript shell="sh">
> >>    ssh ${server} <<END
> >>cd /tmp
> >>ls -lrta
> >>END
> >>  </shellscript>
> >
> >On Sunday 23 March 2003 23:52, Michael Taft wrote:
> >>Hello -
> >>I've been using Ant in a hobbyist capacity for about a year now. I use
> >>it in jEdit to help me build my project.
> >>
> >>One thing I would like to do is automate the uploading of my website
> >>materials to sourceforge. Currently, I have a single ant task that tars
> >>them, gzips them, and then scps the whole lot to the home of my
> >>sourceforge site. That all works great.
> >>
> >>However, what I'd *really* like is to then be able to ssh into
> >>sourceforge, and unzip and untar the bundle. I created an executable
> >>task for ssh and was easily able to connect. But the next stage is
> >>confusing me a little bit. What I  need to do is execute three bash
> >>shell commands (cd blah blah, gunzip blah blah, and tar xf blah blah) on
> >>the remote server.
> >>
> >>Is there an executable task that does this?
> >>
> >>In looking at the list archive, I found something about a "shellscript"
> >>task that sounds right, but neither my copy of ant (both the very latest
> >>plugin for jEdit, and the other (also new) copy I have on my machine
> >>seem to implement this task.
> >>
> >>So, my questions are:
> >>
> >>1. Is "scriptshell" what I want?
> >>2. If not, what is.
> >>3. If so, where do I get it?
> >>
> >>Thanks in advance.
> >>M.
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >>For additional commands, e-mail: user-help@ant.apache.org
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >For additional commands, e-mail: user-help@ant.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message