New feature: input_redirect in cleanup_args(). Since this function might be run from outside a tty, there's no way to get input. So an external input handler is required. This enables that functionality. Also some cleanup to get_instructions so that we can load them from some where else in the future.

This commit is contained in:
Anton Hvornum 2020-03-16 17:20:26 +01:00
parent 113c7c23b0
commit cab78fee0a
1 changed files with 6 additions and 3 deletions

View File

@ -558,10 +558,12 @@ def disk_info(drive, *positionals, **kwargs):
return info
def cleanup_args():
def cleanup_args(*positionals, **kwargs):
for key in args:
if args[key] == '<STDIN>':
if not args['unattended']:
if 'input_redirect' in kwargs:
args[key] = kwargs['input_redirect'](key)
args[key] = input(f'Enter a value for {key}: ')
else:
args[key] = random_string(32)
@ -725,12 +727,13 @@ def get_local_instructions(target):
return instructions
def get_instructions(target, *positionals, **kwargs):
if not 'profiles-path' in kwargs: kwargs['profiles-path'] = args['profiles-path']
instructions = oDict()
if target[0-len('.json'):] == '.json': target = target[:0-len('.json')]
log(f'Fetching instructions for {target}', level=4, origin='get_instructions')
if get_default_gateway_linux():
try:
instructions = grab_url_data('{}/{}.json'.format(args['profiles-path'], target)).decode('UTF-8')
instructions = grab_url_data(f"{kwargs['profiles-path']}/{target}.json").decode('UTF-8')
log(f'Found net-deploy instructions for {target}', level=4, origin='get_instructions')
print('[N] Found net-deploy instructions called: {}'.format(target))
except urllib.error.HTTPError:
@ -745,7 +748,7 @@ def get_instructions(target, *positionals, **kwargs):
instructions = json.loads(instructions, object_pairs_hook=oDict)
except:
log(f'JSON syntax error in: {target}', level=4, origin='get_instructions')
print('[E] JSON syntax error in {}'.format('{}/{}.json'.format(args['profiles-path'], target)))
print('[E] JSON syntax error in {}'.format('{}/{}.json'.format(kwargs['profiles-path'], target)))
traceback.print_exc()
exit(1)