Add option to run SDIO from network share
This commit is contained in:
parent
eab7a03f70
commit
3d90adf4b2
3 changed files with 97 additions and 4 deletions
86
scripts/launch_sdio.py
Normal file
86
scripts/launch_sdio.py
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
"""WizardKit: Launch Snappy Driver Installer Origin"""
|
||||||
|
# vim: sts=2 sw=2 ts=2
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
os.chdir(os.path.dirname(os.path.realpath(__file__)))
|
||||||
|
sys.path.append(os.getcwd())
|
||||||
|
import wk # pylint: disable=wrong-import-position
|
||||||
|
from wk.cfg.net import SDIO_SERVER
|
||||||
|
|
||||||
|
# STATIC VARIABLES
|
||||||
|
MOUNT_EXCEPTIONS = (
|
||||||
|
RuntimeError,
|
||||||
|
wk.exe.subprocess.CalledProcessError,
|
||||||
|
)
|
||||||
|
SDIO_LOCAL_PATH = wk.kit.tools.get_tool_path("SDIO", "SDIO")
|
||||||
|
SDIO_REMOTE_PATH = wk.io.get_path_obj(
|
||||||
|
(
|
||||||
|
fr'\\{SDIO_SERVER["Address"]}\{SDIO_SERVER["Share"]}\{SDIO_SERVER["Path"]}'
|
||||||
|
fr'\SDIO{"64" if wk.os.win.ARCH == "64" else ""}.exe'
|
||||||
|
),
|
||||||
|
resolve=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
def try_again():
|
||||||
|
"""Ask to try again or quit."""
|
||||||
|
if wk.std.ask(' Try again?'):
|
||||||
|
return True
|
||||||
|
if not wk.std.ask(' Use local version?'):
|
||||||
|
wk.std.abort()
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def use_network_sdio():
|
||||||
|
"""Try to mount SDIO server."""
|
||||||
|
def _mount_server():
|
||||||
|
print('Connecting to server... (Press CTRL+c to use local copy)')
|
||||||
|
return wk.net.mount_network_share(SDIO_SERVER, read_write=False)
|
||||||
|
|
||||||
|
use_network = False
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
proc = _mount_server()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
break
|
||||||
|
except MOUNT_EXCEPTIONS as err:
|
||||||
|
wk.std.print_error(f' {err}')
|
||||||
|
if not try_again():
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
if proc.returncode == 0:
|
||||||
|
# Network copy available
|
||||||
|
use_network = True
|
||||||
|
break
|
||||||
|
|
||||||
|
# Failed to mount
|
||||||
|
wk.std.print_error(' Failed to mount server')
|
||||||
|
if not try_again():
|
||||||
|
break
|
||||||
|
|
||||||
|
# Done
|
||||||
|
return use_network
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
wk.std.set_title(f'{wk.cfg.main.KIT_NAME_FULL}: Snappy Driver Installer Origin Launcher')
|
||||||
|
log_dir = wk.log.format_log_path(tool=True).parent
|
||||||
|
use_network = False
|
||||||
|
|
||||||
|
# Try to mount server
|
||||||
|
try:
|
||||||
|
use_network = use_network_sdio()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
wk.std.abort()
|
||||||
|
|
||||||
|
# Run SDIO
|
||||||
|
exe_path = SDIO_LOCAL_PATH
|
||||||
|
if use_network:
|
||||||
|
exe_path = SDIO_REMOTE_PATH
|
||||||
|
print('Using network copy!')
|
||||||
|
else:
|
||||||
|
print('Using local copy!')
|
||||||
|
cmd = [exe_path, '-log_dir', log_dir]
|
||||||
|
wk.exe.run_program(cmd, check=False, cwd=exe_path.parent)
|
||||||
|
|
@ -24,10 +24,10 @@ LAUNCHERS = {
|
||||||
'L_ELEV': 'True',
|
'L_ELEV': 'True',
|
||||||
},
|
},
|
||||||
'3) Snappy Driver Installer Origin': {
|
'3) Snappy Driver Installer Origin': {
|
||||||
'L_TYPE': 'Executable',
|
'L_TYPE': 'PyScript',
|
||||||
'L_PATH': 'SDIO',
|
'L_PATH': 'Scripts',
|
||||||
'L_ITEM': 'SDIO.exe',
|
'L_ITEM': 'launch_sdio.py',
|
||||||
'L_ARGS': r'-log_dir "%client_dir%\Logs\Tools"',
|
'L_ELEV': 'True',
|
||||||
},
|
},
|
||||||
'4) Auto Setup': {
|
'4) Auto Setup': {
|
||||||
'L_TYPE': 'PyScript',
|
'L_TYPE': 'PyScript',
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,13 @@ CRASH_SERVER = {
|
||||||
#'Pass': '',
|
#'Pass': '',
|
||||||
#'Headers': {'X-Requested-With': 'XMLHttpRequest'},
|
#'Headers': {'X-Requested-With': 'XMLHttpRequest'},
|
||||||
}
|
}
|
||||||
|
SDIO_SERVER = {
|
||||||
|
#'Address': '10.0.0.10',
|
||||||
|
#'Share': 'Share',
|
||||||
|
#'Path': 'SDIO',
|
||||||
|
#'RO-User': '',
|
||||||
|
#'RO-Pass': '',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue