TG-PlatformPlus/make.py

130 lines
3.7 KiB
Python

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import os
import platform
import PyInstaller.__main__
import argparse
import shutil
from datetime import datetime
from version import app_version
from shutil import copyfile
import subprocess
system = platform.system()
APPNAME = 'GPCT-standalone'
VERSION = '1.0.0'
build = os.path.join(os.getcwd(), 'build')
dist = os.path.join(os.getcwd(), 'dist')
spec = os.path.join(os.getcwd(), 'spec')
pycache = os.path.join(os.getcwd(), '__pycache__')
logPath = os.path.join(os.getcwd(), 'logFile')
main = os.path.join(os.getcwd(), 'main.py')
cmdBase = [
main,
'--clean',
'--workpath', build,
'--specpath', spec,
'--distpath', dist,
'--noconfirm',
'--windowed',
'--log-level','WARN',
'--name',APPNAME,
# '--add-binary','../influxd.exe:.',
'--add-data','../dataFile/config.json:.',
'--add-data','../Syunew3D_x64.dll:.',
'--add-data','../version.json:.',
'--add-data','../help.md:.',
'--add-data','../help_task.md:.',
'--add-data','../dataFile/data.db:.',
'--add-data','../default_cosl.py:.',
'--add-data','../default_general.py:.',
'--add-data','../default_http.py:.',
'--add-data','../default_scpi.py:.',
'--add-data','../default_task.py:.',
'--add-data','../logo:logo',
'--add-data','../qml:qml',
'--add-data','../3dpart/nidaqmx:nidaqmx',
'--add-data','../3dpart/nidaqmx-0.9.0.dist-info:nidaqmx-0.9.0.dist-info',
'--add-data','../scripts:scripts',
'--add-data','../sqls:sqls',
# '--add-data',f'../grafana:grafana'
]
cmdList = {
'Darwin':cmdBase + [
'--icon','../logo/logo.icns',
'--osx-bundle-identifier','com.ningxuezhi',
],
'Windows':cmdBase + [
'--icon','../logo/logo.ico',
'--exclude-module', 'PyQt5',
'--exclude-module', 'PySide2',
'--exclude-module', 'PySide6',
'--version-file','../version.info',
]
}
proList = {
'default':'project_000001',
'zsh':'project_000002'
}
class Main():
def __init__(self):
super().__init__()
def run(self):
print('The system is : ', system)
versionInfo = app_version.data
parser = argparse.ArgumentParser()
parser.add_argument(
'-c',
'--clean',
action='store_true',
help='clean'
)
parser.add_argument(
'-b',
'--build',
action='store_true',
help='build'
)
parser.add_argument(
'-d',
'--dog',
help='dog'
)
parser.add_argument(
'-v',
'--version',
action='version',
version= versionInfo["version"]
)
args = parser.parse_args()
print(args)
if args.clean:
for i in [build, dist, spec, pycache, logPath]:
shutil.rmtree(i, ignore_errors=True)
if args.build:
if args.dog:
dog_directory = args.dog
print('dog_directory:', dog_directory)
copyfile("default_config.json", "./dataFile/config.json")
copyfile("default_data.db", "./dataFile/data.db")
copyfile("./dog/"+dog_directory+"/Psyunew3.pyc", "./Psyunew3.pyc")
versionInfo['proId'] = dog_directory in proList and proList[dog_directory] or ''
versionInfo['releaseTime'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
app_version.update(versionInfo)
PyInstaller.__main__.run(cmdList[system])
else:
print("Please provide the dog directory using -d option")
if __name__ == '__main__':
main = Main()
main.run()