👍[Update] installer : 暫定的に更新処理を追加
This commit is contained in:
@@ -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"
|
||||||
28
model.py
28
model.py
@@ -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():
|
||||||
|
|||||||
Reference in New Issue
Block a user