我使用git pre-commit钩子来运行一个基于clang-format
的自动格式化脚本format-src.sh
。有些开发人员使用github-desktop
来安装clang-format
软件包。因此,我决定从precommit钩子调用cygwin bash。在cygwin中,使用cygwins软件包管理器来安装clang-format
软件包是很容易的。
cygwin shell的调用是按照以下方式完成的:Creating batch file to start cygwin and execute specific command
预提交
#!/bin/sh
echo "Format src accordingt to format-src.sh"
CYGWIN_DIR=c:/cygwin64/
PROJ_DIR=/cygdrive/c/Projekte/ExampleProj
eval '$CYGWIN_DIR/bin/mintty $CYGWIN_DIR/bin/bash --login -c "cd $PROJ_DIR; ./format-src.sh"'
我的问题是,pre-commit钩子似乎没有等到cywin终端mintty完成了skript format-src.sh
。因此,提交完成时,自动格式化脚本仍然运行。
我怎么能等到在mintty中运行的脚本完成呢?
1条答案
按热度按时间fdbelqdn1#
我想使用
$!
。但结果是,mintty
在format-src.sh
脚本触发时更改了pid。我们必须从ps
监视其状态。