前段时间,参加了阿里云MVP共创任务的PGAdmin4定制及汉化工作,昨天终于完成了验收。功能完成。今天将定制的代码及部署(操作)手册写完并提交给工作人员了。
由于当时接任务的时候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的过程,暂时还没有实现。考虑中……
阅读(7258) | 评论(3) | 转发(1) |