Initial
This commit is contained in:
35
src_mac/server.py
Executable file
35
src_mac/server.py
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env python3
|
||||
from pathlib import Path
|
||||
from urllib.request import urlopen
|
||||
|
||||
from cfg import CONFIG, Log
|
||||
|
||||
|
||||
class WinApiServer():
|
||||
def __init__(self) -> None:
|
||||
self.server_url = CONFIG.win_server
|
||||
if self._post('up', '') != 'YES':
|
||||
raise RuntimeError(
|
||||
f'WinServer {self.server_url} does not seem to be running')
|
||||
|
||||
def _post(self, action: str, data: str) -> str:
|
||||
''' With 10min timeout '''
|
||||
url = f'{self.server_url}/{action}'
|
||||
Log.debug('POST %s --data %s', url, data)
|
||||
with urlopen(url, data=data.encode('utf8'), timeout=1200) as fp:
|
||||
return fp.read().decode('utf8')
|
||||
|
||||
def install(self, fname: Path) -> str:
|
||||
if fname.suffix != '.ipa':
|
||||
raise ValueError(f'Not an *.ipa file: "{fname}"')
|
||||
if not fname.exists() or fname.is_dir():
|
||||
raise ValueError(f'File not found: "{fname}"')
|
||||
if fname.absolute().parent != CONFIG.sync_out.absolute():
|
||||
raise ValueError(f'Install file not in SYNC OUT dir: "{fname}"')
|
||||
return self._post('install', fname.name)
|
||||
|
||||
def uninstall(self, bundleId: str) -> str:
|
||||
return self._post('uninstall', bundleId)
|
||||
|
||||
|
||||
WinServer = WinApiServer()
|
||||
Reference in New Issue
Block a user