68 lines
2.7 KiB
Python
68 lines
2.7 KiB
Python
import os
|
|
import re,subprocess
|
|
from os.path import exists
|
|
import sys
|
|
from subprocess import check_output
|
|
|
|
# Qt PRO 파일에서 SVN 버전 정보 확인
|
|
def get_pro_svn_version(path):
|
|
# RM_MODEL_SVN_VERSION=812
|
|
with open(path,'r', encoding='utf8') as f:
|
|
for line in f:
|
|
res = re.search('SVN_VERSION=[0-9]{1,4}',line)
|
|
if res:
|
|
f.close()
|
|
return res.group().replace('SVN_VERSION=','').strip()
|
|
f.close()
|
|
return None
|
|
|
|
# EVB 파일에서 이전 버전을 확인하고 신규로 교체하여 임시 EVB 파일 생성
|
|
def replace_evb_version(path,version,dest):
|
|
# ZDR09_811 ->
|
|
with open(path,'r', encoding='utf8') as f:
|
|
text = f.read()
|
|
# ZDR09_811
|
|
#old_version_object = re.search('ZDR[0-9]{2,3}_[0-9]{1,4}',text)
|
|
# BYD01_917
|
|
#old_version_object = re.search('CB_R_[0-9]{1,4}|ZDR[0-9]{2,3}_[0-9]{1,4}|ELUT[0-9]{2,3}_[0-9]{1,4}',text)
|
|
old_version_object = re.search('KZR[0-9]{2,3}_[0-9]{1,4}|CB_R_[0-9]{1,4}|ZDR[0-9]{2,3}EN_[0-9]{1,4}|ZDR[0-9]{2,3}_[0-9]{1,4}|ELUT[0-9]{2,3}_[0-9]{1,4}|BYD[0-9]{2,3}_[0-9]{1,4}|MBJ_[0-9]{1,4}|ADR_S10_[0-9]{1,4}',text)
|
|
if old_version_object:
|
|
old_version = old_version_object.group()
|
|
new_version_object = re.search('CB_R|ZDR[0-9]{2,3}EN|ZDR[0-9]{2,3}|KZR[0-9]{2,3}|ELUT[0-9]{2,3}|BYD[0-9]{2,3}|MBJ|ADR_S10',old_version)
|
|
new_version = new_version_object.group() + '_' + version
|
|
#print('old_version:',old_version,'new_version:',new_version)
|
|
#print(new_version)
|
|
|
|
text = text.replace(old_version,new_version)
|
|
|
|
if exists(dest):
|
|
os.remove(dest)
|
|
with open(dest,'w', encoding='utf8') as fw:
|
|
fw.write(text)
|
|
fw.close()
|
|
f.close
|
|
return True
|
|
f.close()
|
|
return False
|
|
|
|
# SVN 커밋
|
|
def svn_commit_if_needed(message):
|
|
root = 'C:\\home\\roadmovie'
|
|
out = check_output(['svn', 'status', root])
|
|
out = out.strip().decode('utf-8')
|
|
lines = out.splitlines()
|
|
if any((line.startswith('M') or line.startswith('A')) for line in lines):
|
|
command_string = f'svn commit {root} -m"{message}"'
|
|
subprocess.call(command_string, shell=True)
|
|
#print(command_string)
|
|
#print('COMMIT')
|
|
else:
|
|
print('NO UPDATES')
|
|
|
|
if __name__ == "__main__":
|
|
svn_commit_if_needed('test')
|
|
#svn_version = get_pro_svn_version('C:\\home\\roadmovie\\project\\roadmovie\\roadmovie.pro')
|
|
#if svn_version:
|
|
# replace_evb_version('C:\\home\\roadmovie\\project\\install_script\\ZDR09.evb',svn_version,'C:\\home\\roadmovie\\project\\install_script\\test.evb')
|
|
|