X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/d252f549b26289f2f7648840658a2191aaeb23ab..35744ac3584df4b658ae4d4c17fd71c620e3ba26:/make-secnet-sites diff --git a/make-secnet-sites b/make-secnet-sites index 371c82e..c079bcc 100755 --- a/make-secnet-sites +++ b/make-secnet-sites @@ -70,7 +70,21 @@ VERSION="0.1.18" class basetype: "Common protocol for configuration types." - pass + def add(self,obj,w): + complain("%s %s already has property %s defined"% + (obj.type,obj.name,w[0])) + +class conflist: + "A list of some kind of configuration type." + def __init__(self,subtype,w): + self.subtype=subtype + self.list=[subtype(w)] + def add(self,obj,w): + self.list.append(self.subtype(w)) + def __str__(self): + return ', '.join(map(str, self.list)) +def listof(subtype): + return lambda w: conflist(subtype, w) class single_ipaddr (basetype): "An IP address" @@ -328,8 +342,7 @@ prefix='' def set_property(obj,w): "Set a property on a configuration node" if obj.properties.has_key(w[0]): - complain("%s %s already has property %s defined"% - (obj.type,obj.name,w[0])) + obj.properties[w[0]].add(obj,w) else: obj.properties[w[0]]=keywords[w[0]][0](w)