您的位置:首页 > 运维架构 > Shell

[Unix]shell编程珠玑(4)-- 读取属性文件和访问CVS

2011-02-18 10:31 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: