From 5f2f20f3d19ae187ef1d6ae642b7e6746a037ba1 Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Tue, 22 May 2018 01:27:33 +0200
Subject: [PATCH] generate: fix presets from different cfg file

---
 generate.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/generate.py b/generate.py
index 589529f..3d786f5 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 = []
-- 
GitLab