我很开心玩Git。今天我开始使用JSON插件来填充带有JSON feed的HTML元素,并使用CoffeeScript构建它。
因此我需要偶尔编译一次输出。目前我运行一组命令,但它一直是一个颜色来调用它。
由于我经常提交,我认为将编译步骤挂钩到预提交是很好的。我的想法是,编译脚本,缩小它,运行git add .
并最终提交它。
所以我在.git/hooks/pre-commit
文件中提出了类似这样的事情。
echo "Compiling cofee scripts..."
exec coffee --compile --output ./dist/ ./src/
echo "DONE..."
echo "Minifying JavaScripts..."
exec minify dist/jquery.jsonPopulate.js dist/jquery.jsonPopulate.min.js
echo "DONE..."
echo ""
echo "Adding files to Git..."
exec git add .
echo "Done..."
echo ""
echo ""
exit 1
运行git add .
后跟git commit
和一些消息......
我明白了......
Compiling coffee scripts...
在exec
之后看起来没有继续,我应该使用其他东西吗?
提前致谢...周末愉快!
答案 0 :(得分:3)
exec
命令用新进程替换了当前进程。所以你的脚本的其余部分永远不会运行。只需删除exec,它将运行'coffee'并等待它终止然后继续执行下一个命令。在钩子脚本中,如果当前的命令成功,则只做下一个命令是个好主意。所以更像以下的东西可能会更好。
echo "Compiling cofee scripts..." &&
coffee --compile --output ./dist/ ./src/ &&
echo "Minifying JavaScripts..." &&
minify dist/jquery.jsonPopulate.js dist/jquery.jsonPopulate.min.js
这种使用逻辑AND运算符链接命令的方式意味着脚本将使用错误命令的失败代码退出,而不是继续运行以后的命令。