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:
global group
global user
global of
+ global prefix
global key_prefix
ap = argparse.ArgumentParser(description='process secnet sites files')
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:
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))
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")
def complain(msg):
"Complain about a particular input line"
- global complaints
- print(("%s line %d: "%(file,line))+msg)
- complaints=complaints+1
+ moan(("%s line %d: "%(file,line))+msg)
def moan(msg):
"Complain about something in general"
global complaints
print(msg);
+ if complaints is None: sys.exit(1)
complaints=complaints+1
class UntaintedRoot():
# 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"