Commit ee502baf authored by 智勇's avatar 智勇

优化

parent 08384732
# coding=UTF-8 # coding=UTF-8
from __future__ import print_function from __future__ import print_function
from functools import partial
import io import io
import yaml import yaml
import fileinput import fileinput
...@@ -9,22 +10,27 @@ import re ...@@ -9,22 +10,27 @@ import re
import copy import copy
import sys import sys
import string import string
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("mylog")
f = io.open('replace_config.yaml', 'r', encoding='utf-8') f = io.open('replace_config.yaml', 'r', encoding='utf-8')
res = yaml.load(f) res = yaml.load(f)
print("全部配置信息:", res) logger.info("全部配置信息:" + str(res))
f.close()
# 获取当前项目的配置 # 获取当前项目的配置
env = os.environ env = os.environ
project = env.get('SYSTEM_NAME') project = env.get('SYSTEM_NAME')
config = res.get(project, res.get('common')) config = res.get(project, res.get('common'))
config = sorted(config.items(), key=lambda rule: (rule[1]['order'], rule[0])) config = sorted(config.items(), key=lambda rule: (rule[1]['order'], rule[0]))
print( "当前project :", project) logger.info("当前project: " + str(project))
print(project, "的配置信息:", config) logger.info("配置信息: " + str(config))
namespace = env.get('NAMESPACE') namespace = env.get('NAMESPACE')
print('namespace:', namespace) logger.info('namespace: ' + namespace)
print('host:', sys.argv[1]) logger.info('host: ' + str(sys.argv[1]))
files = [] files = []
acceptType = {'.html', '.js', '.css'} acceptType = {'.html', '.js', '.css'}
...@@ -39,19 +45,21 @@ def findFile (dir): ...@@ -39,19 +45,21 @@ def findFile (dir):
findFile(dir + '/' + sub) findFile(dir + '/' + sub)
distPaths = [] distPaths = []
if '--' in project: distPaths.append(os.path.abspath(project + '/dist'))
distPaths.append(os.path.abspath(project.split('--')[0] + '/dist')) # distPaths.append(os.path.abspath('/Users/zhiyong/IdeaProjects/qg/vcc-ui/dist'))
distPaths.append(os.path.abspath(project.split('--')[1] + '/dist'))
else:
distPaths.append(os.path.abspath(project + '/dist'))
# 过滤符合要求的文件路径 # 过滤符合要求的文件路径
for distPath in distPaths: for distPath in distPaths:
print("dist路径:", distPath) logger.info('dist路径' + distPath)
findFile(distPath) findFile(distPath)
def _replayHanlder(rule, to, matched):
logger.info("规则:" + rule + ", 匹配到:" + str(matched.group()) + ", 替换为:" + to);
return to;
# 替换文件中的内容 # 替换文件中的内容
for file in files: for file in files:
logger.info('开始替换文件:' + str(file))
for line in fileinput.input(file, inplace = 1): for line in fileinput.input(file, inplace = 1):
for item in config: for item in config:
rule = copy.deepcopy(item[1]) rule = copy.deepcopy(item[1])
...@@ -64,9 +72,11 @@ for file in files: ...@@ -64,9 +72,11 @@ for file in files:
if rule['reg']: if rule['reg']:
p = re.compile(r'' + rule['reg']) p = re.compile(r'' + rule['reg'])
line = re.sub(p, rule['to'], line) _handler1 = partial(_replayHanlder, rule['reg'], rule['to'])
line = re.sub(p, _handler1, line)
print(line, end = '') print(line, end = '')
fileinput.close() fileinput.close()
f.close() logger.info('完成')
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment