That was it! I use JEdit to edit my unix script file, but neglected to use the
unix line separator under utilities => buffer options.
The error messages I was getting did not lead me to the real problem. Thanks so
much! I've spent a lot of time trying to get this to work.
After making that change to my unix script file, each of the following 3
options now work.
<exec executable="bash" dir="${sql.deploy.script}"
osfamily="unix">
<arg value="${sql.deploy.script}/runSqlPlusUnix.sh"/>
<arg value="${sql.deploy.script}"/>
</exec>
<exec executable="bash" dir="${sql.deploy.script}"
osfamily="unix">
<arg value="runSqlPlusUnix.sh"/>
<arg value="${sql.deploy.script}"/>
</exec>
<exec executable="${sql.deploy.script}/runSqlPlusUnix.sh"
dir="${sql.deploy.script}"
osfamily="unix">
<arg value="${sql.deploy.script}"/>
</exec>
This does not work:
<exec executable="runSqlPlusUnix.sh" dir="${sql.deploy.script}"
osfamily="unix">
<arg value="${sql.deploy.script}"/>
</exec>
----- Original Message ----
From: David Weintraub <[email protected]>
To: Ant Users List <[email protected]>
Sent: Tuesday, July 21, 2009 7:46:28 PM
Subject: Re: exec unix script not working for me
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<[email protected]> 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 <[email protected]>
> To: Ant Users List <[email protected]>
> 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<[email protected]> 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: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
>
> --
> David Weintraub
> [email protected]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
--
David Weintraub
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]