事前コミットするために git フックを呼び出しています。これにより、groovy スクリプトの呼び出しがトリガーされ、フック実行のリモート デバッグを可能にする方法で呼び出しが行われます。そのようです:
#!/usr/bin/env groovy
groovy -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=8085,suspend=y "C:\Users\.......hooks\PreCommit.groovy"
GIT BASH を使用してフックをトリガーすると、次のエラーが表示されます。
/c/Program Files (x86)/Groovy/Groovy-2.1.0/bin/startGroovy: line 96: [: too many arguments org.codehaus......: startup failed: .... expected EOF, found ':' @ line 3 column 35]
startGroovy ファイルをざっと見てみると、次の不明確なコードが表示されます。96 行目は、GROOVY ホームの if 条件です。
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$GROOVY_HOME" ] && GROOVY_HOME=`cygpath --unix "$GROOVY_HOME"`
[ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"`
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CP" ] && CP=`cygpath --path --unix "$CP"`
else
if [ -n "$GROOVY_HOME" -a `expr "$GROOVY_HOME":'\/$'` ] ; then
GROOVY_HOME=`echo $GROOVY_HOME | sed -e 's/\/$//'`
fi
fi
これは groovy ブートストラップのバグですか? 私のWindows 7には、C:\ program file(x86)\ Groovy\Groovy-2.1.0を正しく指すenv変数GROOVY_HOMEがあります