👍[Update] installer : 暫定的に更新処理を追加

This commit is contained in:
misyaguziya
2023-10-31 16:34:05 +09:00
parent bfd718ce76
commit 033a64a725
2 changed files with 28 additions and 18 deletions

View File

@@ -1,16 +1,20 @@
@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof @if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof
set exe_name=%1 set exe_name=%1
set folder_name=%2 set exe_tmp_name=%2
set tmp_name=%3 set folder_name=%3
set restart=%4 set folder_tmp_name=%4
set restart=%5
taskkill /im %exe_name% /F taskkill /im %exe_name% /F
ping -n 2 127.0.0.1 > nul ping -n 2 127.0.0.1 > nul
del /f %exe_name% del /f %exe_name%
rmdir /s %folder_name% rename %exe_tmp_name% %exe_name%
move %tmp_name%\* .\ rmdir /s /q %folder_name%
del /f %tmp_name% rename %folder_tmp_name% %folder_name%
if %restart% == True ( if %restart% == True (
START "" %exe_name% START "" %exe_name%
) )
del /f "%~dp0%~nx0"

View File

@@ -1,9 +1,9 @@
import sys import sys
from zipfile import ZipFile from zipfile import ZipFile
from subprocess import Popen from subprocess import Popen, PIPE
from os import makedirs as os_makedirs from os import makedirs as os_makedirs
from os import path as os_path, rename as os_rename from os import path as os_path
from shutil import rmtree from shutil import rmtree, move
from datetime import datetime from datetime import datetime
from logging import getLogger, FileHandler, Formatter, INFO from logging import getLogger, FileHandler, Formatter, INFO
from time import sleep from time import sleep
@@ -268,15 +268,16 @@ class Model:
def updateSoftware(restart:bool=True): def updateSoftware(restart:bool=True):
filename = 'VRCT.zip' filename = 'VRCT.zip'
program_name = 'VRCT.exe' program_name = 'VRCT.exe'
program_tmp_name = '_VRCT.exe'
folder_name = '_internal' folder_name = '_internal'
folder_tmp_name = '__internal'
tmp_directory_name = 'tmp' tmp_directory_name = 'tmp'
batch_name = 'update.bat' batch_name = 'update.bat'
current_directory = os_path.dirname(sys.argv[0]) current_directory = config.LOCAL_PATH
program_directory = os_path.dirname(__file__)
try: try:
res = requests_get(config.GITHUB_URL) res = requests_get(config.GITHUB_URL)
assets = res.json()['assets'][0]['browser_download_url'] assets = res.json()['assets']
url = [i["browser_download_url"] for i in assets if i["name"] == filename][0] url = [i["browser_download_url"] for i in assets if i["name"] == filename][0]
res = requests_get(url, stream=True) res = requests_get(url, stream=True)
os_makedirs(os_path.join(current_directory, tmp_directory_name), exist_ok=True) os_makedirs(os_path.join(current_directory, tmp_directory_name), exist_ok=True)
@@ -284,10 +285,15 @@ class Model:
for chunk in res.iter_content(chunk_size=1024): for chunk in res.iter_content(chunk_size=1024):
file.write(chunk) file.write(chunk)
with ZipFile(os_path.join(current_directory, tmp_directory_name, filename)) as zf: with ZipFile(os_path.join(current_directory, tmp_directory_name, filename)) as zf:
zf.extract(program_name, os_path.join(current_directory, tmp_directory_name)) zf.extractall(os_path.join(current_directory, tmp_directory_name))
command = [os_path.join(program_directory, "batch", batch_name), program_name, folder_name, tmp_directory_name, str(restart)] move(os_path.join(current_directory, tmp_directory_name, program_name), os_path.join(current_directory, program_tmp_name))
Popen(command) move(os_path.join(current_directory, tmp_directory_name, folder_name), os_path.join(current_directory, folder_tmp_name))
except: move(os_path.join(current_directory, folder_name, "batch", batch_name), os_path.join(current_directory, batch_name))
rmtree(os_path.join(current_directory, tmp_directory_name))
command = [os_path.join(current_directory, batch_name), program_name, program_tmp_name, folder_name, folder_tmp_name, str(restart)]
Popen(command, cwd=current_directory)
except Exception as e:
print(e)
webbrowser.open(config.BOOTH_URL, new=2, autoraise=True) webbrowser.open(config.BOOTH_URL, new=2, autoraise=True)
@staticmethod @staticmethod
@@ -296,7 +302,7 @@ class Model:
batch_name = 'restart.bat' batch_name = 'restart.bat'
program_directory = os_path.dirname(__file__) program_directory = os_path.dirname(__file__)
command = [os_path.join(program_directory, "batch", batch_name), program_name] command = [os_path.join(program_directory, "batch", batch_name), program_name]
Popen(command) Popen(command, cwd=current_directory)
@staticmethod @staticmethod
def getListInputHost(): def getListInputHost():