def site_finish(self,confw):
confw.write("peer-keys \"%s\";\n"%self._pa);
+class OpBase():
+ pass
+
+class OpConf(OpBase):
+ def is_service(self): return 0
+
+class OpUserv(OpBase):
+ opts = ['--userv','-u']
+ help = 'userv service fragment update mode'
+ def is_service(self): return 1
+
def parse_args():
+ global opmode
global service
global inputfile
global header
global pubkeys_mode
ap = argparse.ArgumentParser(description='process secnet sites files')
- ap.add_argument('--userv', '-u', action='store_true',
- help='userv service fragment update mode')
+ def add_opmode(how):
+ ap.add_argument(*how().opts, action=ArgActionLambda,
+ nargs=0,
+ fn=(lambda v,ns,*x: setattr(ns,'opmode',how)),
+ help=how().help)
+ add_opmode(OpUserv)
ap.add_argument('--conf-key-prefix', action=ActionNoYes,
default=True,
help='prefix conf file key names derived from sites data')
av = ap.parse_args()
debug_level = av.debug
debugrepr('av',av)
- service = 1 if av.userv else 0
+ opmode = getattr(av,'opmode',OpConf)()
+ service = opmode.is_service()
prefix = '' if av.prefix is None else av.prefix[0]
key_prefix = av.conf_key_prefix
output_version = av.output_version[0]