Fixed room browser connection issues
This commit is contained in:
1 parent
27b12beff8
commit
91b7840535
3 files changed
+48
-2
No files matched your search
+16
-2
@@ -17,6 +17,19 @@ import webbrowser
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def credential(env, name, configured, label):
|
||||
inherited = env.get(name, '')
|
||||
selected = inherited or configured
|
||||
source = 'environment variable '+name if inherited else 'launcher INI'
|
||||
if selected:
|
||||
print(f'{label} source: {source}', flush=True)
|
||||
if inherited and configured and inherited != configured:
|
||||
print(f'WARNING: {name} overrides a DIFFERENT value in the launcher INI. Clear that variable in the launching terminal to use the INI.', flush=True)
|
||||
if selected and (selected[0] in "\"'" or selected[-1] in "\"'"):
|
||||
raise ValueError(f'{label} has surrounding quote characters. In launcher.ini use the token without quotes; enter the same unquoted token in the browser.')
|
||||
return selected
|
||||
|
||||
|
||||
def plan(config_path, mode):
|
||||
config_path = Path(config_path).resolve()
|
||||
config = configparser.ConfigParser(interpolation=None)
|
||||
@@ -41,7 +54,7 @@ def plan(config_path, mode):
|
||||
require_file(script)
|
||||
require_file(script.with_name('operator.html'))
|
||||
require_file(catalog)
|
||||
operator = env.get('ARCADE_OPERATOR_TOKEN') or value('controller', 'operator_token')
|
||||
operator = credential(env, 'ARCADE_OPERATOR_TOKEN', value('controller', 'operator_token'), 'Operator token')
|
||||
tokens = json.loads(env.get('ARCADE_CABINET_TOKENS') or value('controller', 'cabinet_tokens', '{}'))
|
||||
if not isinstance(tokens, dict): raise ValueError('cabinet_tokens must be a JSON object')
|
||||
legacy = env.get('ARCADE_CABINET_TOKEN', '')
|
||||
@@ -66,7 +79,7 @@ def plan(config_path, mode):
|
||||
if not cabinet_id or any(c.isspace() for c in cabinet_id): raise ValueError('Invalid cabinet ID')
|
||||
cabinet_env = dict(env)
|
||||
room_url = env.get('ARCADE_ROOM_URL') or value('cabinet', 'url')
|
||||
token = env.get('ARCADE_CABINET_TOKEN') or value('cabinet', 'token')
|
||||
token = credential(env, 'ARCADE_CABINET_TOKEN', value('cabinet', 'token'), 'Cabinet token')
|
||||
if mode == 'all':
|
||||
room_url = room_url or url
|
||||
token = token or tokens.get(cabinet_id, '')
|
||||
@@ -163,6 +176,7 @@ def main():
|
||||
def interrupted(*_): raise KeyboardInterrupt
|
||||
signal.signal(signal.SIGTERM, interrupted)
|
||||
try:
|
||||
print('Launcher configuration: '+str(Path(args.config).resolve()), flush=True)
|
||||
jobs, logs = plan(args.config, args.mode)
|
||||
if args.check:
|
||||
check_ports(jobs)
|
||||
|
||||
Reference in new issue
Block a user