X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=make-secnet-sites;h=b4cd9afb80ac404c03b6f3575718cbf0863e3005;hb=1b8af2f7f86131a5364f2270865895ea597c591e;hp=4be0160f8e2d5a8564f8da3dc593d5464de563a2;hpb=8f7d3ca86bd38eb5d79b0601669b96bab3a0c90b;p=secnet.git diff --git a/make-secnet-sites b/make-secnet-sites index 4be0160..b4cd9af 100755 --- a/make-secnet-sites +++ b/make-secnet-sites @@ -105,19 +105,19 @@ class Tainted: assert(self._ok is not True) self._ok=False complain('bad parameter: %s: %s' % (what, why)) - return self + return False def _max_ok(self,what,maxlen): if len(self._s) > maxlen: - self._bad(what,'too long (max %d)' % maxlen) - return self + return self._bad(what,'too long (max %d)' % maxlen) + return True def _re_ok(self,bad,what,maxlen=None): if maxlen is None: maxlen=max[what] self._max_ok(what,maxlen) - if self._ok is False: return self + if self._ok is False: return False if bad.search(self._s): return self._bad(what,'bad syntax') - return self + return True def _rtnval(self, is_ok, ifgood, ifbad=''): if is_ok: @@ -214,6 +214,7 @@ def parse_args(): global group global user global of + global prefix global key_prefix ap = argparse.ArgumentParser(description='process secnet sites files') @@ -228,6 +229,7 @@ def parse_args(): av = ap.parse_args() #print(repr(av), file=sys.stderr) service = 1 if av.userv else 0 + prefix = '' if av.prefix is None else av.prefix[0] key_prefix = av.conf_key_prefix if service: if len(av.arg)!=4: @@ -417,7 +419,7 @@ class level: def prop_out(self,n): return self.allow_properties[n](n,str(self.properties[n])) def output_props(self,w,ind): - for i in self.properties.keys(): + for i in sorted(self.properties.keys()): if self.allow_properties[i]: self.indent(w,ind) w.write("%s"%self.prop_out(i)) @@ -430,7 +432,8 @@ class level: w.write("%s {\n"%(self.kname())) self.output_props(w,ind+2) if self.depth==1: w.write("\n"); - for c in self.children.values(): + for k in sorted(self.children.keys()): + c=self.children[k] c.output_data(w,path+(c,)) self.indent(w,ind) w.write("};\n") @@ -533,11 +536,6 @@ class sitelevel(level): # (depth,properties) levels={'vpn':vpnlevel, 'location':locationlevel, 'site':sitelevel} -# Reserved vpn/location/site names -reserved={'all-sites':None} -reserved.update(keywords) -reserved.update(levels) - def complain(msg): "Complain about a particular input line" global complaints @@ -558,7 +556,6 @@ root=level([UntaintedRoot(x) for x in ['root','root']]) # All vpns are children of this node obstack=[root] allow_defs=0 # Level above which new definitions are permitted -prefix='' def set_property(obj,w): "Set a property on a configuration node"