1 读取属性文件
属性文件名为:config.prop
内容为:CVSROOT="aaa"
在Shell 中调用:
CVSROOT=`grep "CVSROOT" config.prop | cut -f2 -d"=" | tr -d ' "'`
这样CVSROOT 变量就为aaa 了。
2 访问CVS
可以参考: 1) 车东先生的 CVS使用手册
2) ChinaUnix.net CVS 中文手册
项目中要求从CVS 上下载代码,当发现有新的代码变动时,才进行Build。解决的办法挺简单的,就是调用
cvs co "${projectName}"> CVSchange.txt 命令checkout 源代码,然后检查CVSchange.txt 是否为空,空就build。但是记住,build 的时候需要在一份源代码的拷贝中完成。这样不会影响本地的cvs 代码。
当然,应该现在机器上登录cvs (cvs -d :pserver:cvs_user_name@cvs.server.address:/path/to/cvsroot login),然后在自动的执行脚步。
代码如下:
#! /bin/sh ################################# # By Alf lihe2011@gmail.com # ################################# # Get properties from config.prop CVSROOT=`grep "CVSROOT" config.prop | cut -f2 -d"=" | tr -d ' "'` projectName=`grep "projectName" config.prop | cut -f2 -d"=" | tr -d ' "'` shareFolder=`grep "shareFolder" config.prop | cut -f2 -d"=" | tr -d ' "'` export CVSROOT="${CVSROOT}" echo "$CVSROOT" echo "$projectName" echo "$shareFolder" # ping cvs 主机 ping -c 1 9.123.123.12 successPing=`echo $?` if [ ! ${successPing} -eq 0 ];then echo "ping fail." else # check out rft source code cvs co "projectName"> CVSchange.txt # check code change if [ ! -s "CVSchange.txt" ];then echo "OK" else echo "Compile source code.EMail to you" # copy projectName to projectName_TEMP rm -rf projectName_TEMP cp -r projectName/ projectName_TEMP # run compile.sh cd ./projectName_TEMP/ ./compile.sh # zip product.zip zip -r product.zip * #upload zip rm -f "${shareFolder}"/product.zip cp product.zip "${shareFolder}" fi fi
