Inspiration struck! What are the end-of-line characters on your script? I've seen this type of error when the lines in a shell script shell end with <CR><LF>. Also make sure that the last line in the shell script ends with a <LF>. Some text editors don't put the final <LF> on the end of the file.
On Tue, Jul 21, 2009 at 3:09 PM, Amy Davis<nicecoolbre...@yahoo.com> wrote: > > The unix script file is pulled from SVN into TeamCity's work area. The ant > script copies it to the location where I want it to run, does a chmod on it, > and then tries to execute it. The ${sql.deploy.script} argument just contains > the directory name (bad name, you're right). > > I tried > <exec executable="${sql.deploy.script}/runSqlPlusUnix.sh" > dir="${sql.deploy.script}" > osfamily="unix"> > <arg value="${sql.deploy.script}"/> > </exec> > > and got > > [exec] Execute:Java13CommandLauncher: Executing > '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0/runSqlPlusUnix.sh' > with arguments: > '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0' > The ' characters around the executable and arguments are not part of the > command. > [exec] Execute failed: java.io.IOException: Cannot run program > "/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0/runSqlPlusUnix.sh" > (in directory > "/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0"): > error=2, No such file or directory > > The runSqlPlusUnix.sh file has a shebang line (contents below): > > #!/bin/sh > # Set up initial variables > deployScriptPath=$1 > # Make sure the file name was supplied > if [ ! "${deployScriptPath}" ]; then > echo "The MasterDeployScript.sql file path is required." > exit 1 > fi > ORACLE_HOME=/u00/oracle/oracle/product/10.2.0/db_1 > export ORACLE_HOME > /u00/oracle/oracle/product/10.2.0/db_1/bin/sqlplus -L > username/passw...@sidname @${deployScriptPath}/MasterDeployScript.sql > > ${deployScriptPath}/SQLDeploy.out > > ----- Original Message ---- > From: David Weintraub <qazw...@gmail.com> > To: Ant Users List <user@ant.apache.org> > Sent: Tuesday, July 21, 2009 12:04:48 PM > Subject: Re: exec unix script not working for me > > If you put a Shebang in your shell script, and you have the executable > bit on in the mode, you don't have to specify the shell. > > <exec executable="runSsqlPlusUnix.sh" dir="${sql.deploy.script}/" > osfamily="unix"> > <arg line="${sql.deploy.script}"/> > </exec> > > > HOWEVER, if you do use the shell, you need to put the full directory > name where your script can be found: > > <exec executable="bash" dir="${sql.deploy.script}/" > osfamily="unix"> > <arg line="${runSqlPlusUnix.dir}/runSqlPlusUnix.sh ${sql.deploy.script}"/> > </exec> > > By the way, is ${sql.deploy.script} a directory or script? You're > using it as both. Maybe this is what you need: > > <dirname property="sql.deploy.script.dir" > file="${sql.deploy.script}"/> > <exec executable="bash" dir="${sql.deploy.script}/" > osfamily="unix"> > <arg line="${runSqlPlusUnix.dir}/runSqlPlusUnix.sh > ${sql.deploy.script.dir}"/> > </exec> > > On Tue, Jul 21, 2009 at 10:21 AM, Amy Davis<nicecoolbre...@yahoo.com> wrote: >> >> I'm having trouble getting a unix script to execute through my ant script. >> What am I doing wrong? >> >> Attempt 1 ant script snippet: >> >> <!-- Copy the script file to the run location and chmod to make executable >> --> >> <copy file="${basedir}/runSqlPlusUnix.sh" todir="${sql.deploy.script}"/> >> <chmod file="${sql.deploy.script}/runSqlPlusUnix.sh" perm="775"/> >> <exec executable="bash" dir="${sql.deploy.script}/" >> osfamily="unix"> >> <arg line="runSqlPlusUnix.sh ${sql.deploy.script}"/> >> </exec> >> >> Attempt 1 verbose output: >> >> [if] copy >> [copy] Copying 1 file to >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0 >> [if] chmod >> [chmod] FileSet: Setup scanner in dir >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0 >> with patternSet{ includes: [runSqlPlusUnix.sh] excludes: [] } >> [chmod] Execute:Java13CommandLauncher: Executing 'chmod' with >> arguments:'775' >> '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0/runSqlPlusUnix.sh' >> The ' characters around the executable and arguments are not part of the >> command. >> [if] exec >> [exec] Execute:Java13CommandLauncher: Executing 'bash' with >> arguments:'runSqlPlusUnix.sh' >> '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0' >> The ' characters around the executable and arguments are not part of the >> command. >> [exec] runSqlPlusUnix.sh: line 2: >> [exec] : command not foundrunSqlPlusUnix.sh: line 5: >> [exec] : command not foundrunSqlPlusUnix.sh: line 16: syntax error: >> unexpected end of file >> [exec] Result: 2 >> >> Attempt 2 ant script snippet: >> >> <copy file="${basedir}/runSqlPlusUnix.sh" todir="${sql.deploy.script}"/> >> <chmod file="${sql.deploy.script}/runSqlPlusUnix.sh" perm="775"/> >> <exec executable="runSqlPlusUnix.sh" dir="${sql.deploy.script}" >> osfamily="unix"> >> <arg value="${sql.deploy.script}"/> >> </exec> >> >> Attempt 2 verbose output (I verified that the file exists in the right >> location with the right permission after this ran): >> >> [if] copy >> [copy] Copying 1 file to >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0 >> [if] chmod >> [chmod] FileSet: Setup scanner in dir >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0 >> with patternSet{ includes: [runSqlPlusUnix.sh] excludes: [] } >> [chmod] Execute:Java13CommandLauncher: Executing 'chmod' with >> arguments:'775' >> '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0/runSqlPlusUnix.sh' >> The ' characters around the executable and arguments are not part of the >> command. >> [if] exec >> [exec] Execute:Java13CommandLauncher: Executing 'runSqlPlusUnix.sh' with >> arguments: >> '/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0' >> The ' characters around the executable and arguments are not part of the >> command. >> [exec] Execute failed: java.io.IOException: Cannot run program >> "runSqlPlusUnix.sh" (in directory >> "/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0"): >> error=2, No such file or directory >> [antcall] The following error occurred while executing this line: >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/build.xml:62: >> Execute failed: java.io.IOException: Cannot run program "runSqlPlusUnix.sh" >> (in directory >> "/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0"): >> error=2, No such file or directory >> [subant] The following error occurred while executing this line: >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/build.xml:28: The >> following error occurred while executing this line: >> /u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/build.xml:62: >> Execute failed: java.io.IOException: Cannot run program "runSqlPlusUnix.sh" >> (in directory >> "/u01/ossint/TeamCityBuildAgent/work/ba331bf4546cf0c1/sql/deployment/r1-0"): >> error=2, No such file or directory >> [09:52:34]: Ant output: >> at >> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) >> at org.apache.tools.ant.Project.executeTargets(Project.java:1181) >> at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) >> at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:289) >> at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:208) >> at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> >> I'm having trouble getting a unix script to execute through my ant script. >> What am I doing wrong? >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >> For additional commands, e-mail: user-h...@ant.apache.org >> >> > > > > -- > David Weintraub > qazw...@gmail.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > For additional commands, e-mail: user-h...@ant.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > For additional commands, e-mail: user-h...@ant.apache.org > > -- David Weintraub qazw...@gmail.com --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org