diff --git a/generate.py b/generate.py index 589529f20349853139ba8e709a4741d4b6fa02e4..3d786f57f3b982acb371157796b726478d882578 100755 --- a/generate.py +++ b/generate.py @@ -16,9 +16,17 @@ except Exception: pass if not 'presets' in config: config['presets'] = {} + choices = [] + choice_default = None +else: + choices = list(config['presets']) + choice_default = list(config['presets'].keys())[0] parser = argparse.ArgumentParser(description='Generates a SSH config file from some DNS zone(s).') -parser.add_argument('--preset', choices=list(config['presets']), default=list(config['presets'].keys())[0], help='select a configuration preset') +if choices: + parser.add_argument('--preset', choices=choices, default=choice_default, help='select a configuration preset') +else: + parser.add_argument('--preset', action='store', default=choice_default, help='select a configuration preset') parser.add_argument('--cfg', action='store', default='./sshgen.cfg', help='config file') args = parser.parse_args() preset = args.preset @@ -26,6 +34,8 @@ preset = args.preset if args.cfg != './sshgen.cfg': with open(args.cfg) as fp: config.read_file(fp) +if preset not in list(config['presets']): + sys.exit('preset not in presets configuration') def get_zones(): all_zones = []