将简单的BASH更新脚本从SVN迁移到GIT

前端之家收集整理的这篇文章主要介绍了将简单的BASH更新脚本从SVN迁移到GIT前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们曾经通过SVN使我们的Nagios配置保持最新,用户提交他们的更改并且每15分钟运行一次脚本.脚本检查更新,然后检查这些更新解析配置检查,然后重新加载配置.很好,很简单,做得很好.

我们最近搬到了GIT,作为更广泛的GIT迁移到其他项目的一部分,我很难重新编写这个脚本来匹配.

这是原始的SVN版本:

cd /usr/local/nagios
RESULT=`svn update | grep Updated | wc -l`
echo $RESULT
if [ "$RESULT" != "0" ]; then
    /etc/init.d/nagios reload
fi
cd -

到目前为止,这是我对GIT的最大努力:

cd /usr/local/nagios
RESULT=`git pull 2>&1 | grep Unpacking | wc -l`
echo $RESULT
if [ "$RESULT" != "0" ]; then
    /etc/init.d/nagios reload
fi
cd -

我遇到的问题是我似乎无法使输出可解析,所以我可以匹配它.我想通过检查本地工作副本中的最新提交,然后检查远程最近的提交是否不同来进行不同的路由.我无法弄清楚如何获取这些信息.

我对GIT很陌生,这让我疯狂,所以我非常感谢您的任何帮助!

您可以在拉动之前和之后检查本地分支的提示(a.k.a.HEAD)是否发生了变化.
cd /usr/local/nagios

before=$(git rev-parse HEAD)
git pull
after=$(git rev-parse HEAD)
if [[ $before != $after ]]; then
  service nagios reload
fi

猜你在找的Bash相关文章