最近在编写自动化构建脚本,大概的思想是,将cvs中某一tag的export出来,根据编写好的ant脚本,ant下,并将ant打出来的多个zip包,打成最终的zip包。另外还涉及到使用第三方的组件等。
实现思想是,使用ini作为配置文件,shell从ini中读取必要的参数,登陆cvs,使用命令从cvs中export处代码,并根据源代码根路径下的buil.properties、build.xml编译,根据代码build文件下的build.properties、build.xml打包编译后的源码,够复杂的。现在本地下实现,后上传脚本到服务器,由系统运行脚本打包。
本地安装的是ubuntu,服务器上的redhat,查看系统版本命令是lsb_release -a。有几个地方需要注意
ini文件中
CVSUserName=jake
shell读取该配置信息
CVSUserName=`awk -F= '$1=="CVSUserName" {print substr($2)}' $CONFIG`
会发现在得到的CVSUserName不是"jake"而是"jake\r",为此需要需要删除“\r”。
ubunt版本的修正方案是,表示很不解,不知道ubuntu怎么想的。
CVSUserName=`awk -F= '$1=="CVSUserName" {print substr($2,0,length($2))}' $CONFIG`
redhat的修正版本是
CVSUserName=`awk -F= '$1=="CVSUserName" {print substr($2,0,length($2)-1)}' $CONFIG`