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