由于当时接任务的时候PGAdmin还是4.6版本,开源软件更新就是快。到现在不到两个月时间,已经更新到4.10版本了。在提交完代码和手册的时候就在想,如果说新版本中我们变更的文件发生了变化怎么,如果直接采用同版本的文件替换方式,是否有一定的风险呢(我觉得肯定是有的)。思考了一段时间,针对我们对POLARDB新增加的Python源代码,采用直接拷贝到指定目录的方式没有问题,但对于在原有文件上的修改,是否可以采用bash脚本直接修改文件呢。下面采用Linux的bash脚本实现文件的变化。
点击(此处)折叠或打开
- #!/bin/bash
- echo abcd |sed 's/a/A/'>/dev/null
- if [ $? -ne 0 ]; then
- please install sed first
- exit 2
- fi
- echo -n "enter the pgadmin 4.6 install dir:"
- read homedir
- echo $homedir
- if [ ! -d $homedir ]; then
- echo $homedir not exists.
- exit 1
- fi
- grep "polardb" $homedir/web/config.py>/dev/null
- if [ $? -eq 0 ]; then
- echo polardb had installed.
- else
- sed -i '/"gpdb": "",/a \ "polardb": ""' $homedir/web/config.py
- fi
- echo config.py install finished!
ed工具是否安装,还有一种方式是使用which sed来检测。
然后由用户指定pgadmin4.6及以上版本的安装主目录。
最后通过sed命令完成在指定行后追加PLOARDB的配置。由于python是采用缩进来进行代码分层的。所以追加行要有4个空格(或者一个TAB键)。在/a命令后如果是TAB键一定要输入\\t(转义)。也可以采用一个\后面输入四个空格的方式来完成。(最开始没有使用\转义,结果不管输入多少个空格最后替换后都是行首无空格。
此脚本仅完成了一个文件内容的变更。关于追加文件由脚本完成拷贝,将资源文件po的追加及将po编译为mo的过程,暂时还没有实现。考虑中……