chiark / gitweb /
make-secnet-sites: Provide `serial' property class
[secnet.git] / make-secnet-sites
index 21ff4604ca0c26bee4771f6c22252d8c32ba4b2a..0f1e8bab8b7d99fc58788e833841a6d0f33a1286 100755 (executable)
@@ -232,6 +232,13 @@ class Tainted:
                ok=self._re_ok(Tainted.bad_base91,what,4096)
                return self._rtn(ok)
 
+class ArgActionLambda(argparse.Action):
+       def __init__(self, fn, **kwargs):
+               self.fn=fn
+               argparse.Action.__init__(self,**kwargs)
+       def __call__(self,ap,ns,values,option_string):
+               self.fn(values,ns,ap,option_string)
+
 def parse_args():
        global service
        global inputfile
@@ -389,6 +396,15 @@ class num (basetype):
        def __str__(self):
                return '%d'%(self.n)
 
+class serial (basetype):
+       def __init__(self,w):
+               self.i=w[1].hexid(4,'serial')
+       def __str__(self):
+               return self.i
+       def forsites(self,version,copy,fs):
+               if version < 2: return []
+               return copy
+
 class address (basetype):
        "A DNS name and UDP port number"
        def __init__(self,w):