Files
checker_host/mycopy.py
2023-11-27 14:31:00 +08:00

101 lines
2.5 KiB
Python

import shutil
import sys
import os
import prebuild as time
import mysql
import quest
# 定义数据库目录
SQL_APP_PATH = "checker_host_app"
def find_type(str):
path = os.getcwd()
#print(path)
list=os.listdir(path)
file_list=[]
for i in list:
if(i[-len(str):]==str):
file_list.append(i)
return file_list
# 把ext_name打包到name之后
def pack_file(name,ext_name):
with open(name, "ab") as f:
data=bytearray(256)
data[4:len(ext_name)+4]=bytearray(ext_name,"utf-8")
with open(ext_name,"rb") as g:
g.seek(0, os.SEEK_END)
size=g.tell()+256
g.seek(0, os.SEEK_SET)
data[0]=size&0xff
data[1]=(size>>8)&0xff
data[2]=(size>>16)&0xff
data[3]=(size>>24)&0xff
print("name:",ext_name,"size=",size)
f.write(data)
f.write(g.read())
def main():
#src ="~/QtWorkSpace/build-QtTcpClient-ATK_MP157-Debug/QtTcpClient"
#dst="~/linux/nfs/qt_tcp_client.app"
if(len(sys.argv)<3):
print("argv num too less")
return
src=sys.argv[1]
dst=sys.argv[2]
cp=""
if(len(sys.argv)>3):
cp=sys.argv[3]
if not os.path.exists(src):
print(src+' File Error!!!')
else:
if os.path.exists(dst):
os.remove(dst)
shutil.copy(src,dst)
#os.remove(src)
file = open(dst,"ab")
file.seek(0, os.SEEK_END)
print("File Size is :", file.tell())
list_file=find_type('.sh')
for i in list_file:
pack_file(dst,i)
list_file=find_type('.json')
for i in list_file:
pack_file(dst,i)
list_file=find_type('.bin')
for i in list_file:
pack_file(dst,i)
list_file=find_type('.lua')
for i in list_file:
pack_file(dst,i)
file.seek(0, os.SEEK_END)
print("File Size is :", file.tell())
file.close()
if(len(cp)>0):
cp=cp+'/'+"checker_"+time.get_date()+".elf"
print(cp)
shutil.copy(dst,cp)
sql=mysql.sql()
if(sql.init(SQL_APP_PATH)==True):
q=quest.quest_text("请输入本次提交的描述信息")
ack,text=q.show()
if(ack==True):
sql.insert(cp,text)
else:
print("user cancelled.")
print("time:",time.get_time())
print(dst+' File copy success.')
if __name__=="__main__":
main()