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')