Files
ipa-archiver/src_mac/server.py
2024-04-02 22:03:02 +02:00

36 lines
1.2 KiB
Python
Executable File

#!/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()