X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=make-secnet-sites;h=a84479ca0ce2fc41939d0c73d3e50721aa57bbb0;hb=49b56eafcd147185c28848a7c04e31a32c49a82e;hp=e18c6ceec383b7916261695cd806ace474ce4b9a;hpb=a91875883bee9dc699eadbbb158ee4f296f1567f;p=secnet.git diff --git a/make-secnet-sites b/make-secnet-sites index e18c6ce..a84479c 100755 --- a/make-secnet-sites +++ b/make-secnet-sites @@ -293,6 +293,11 @@ class PkmElide(PkmBase): class OpBase(): # Base case is reading a sites file from self.inputfilee. # And writing a sites file to self.sitesfile. + def positional_args(self, av): + if len(av.arg)>3: + print("Too many arguments") + sys.exit(1) + (self.inputfile, self.outputfile) = (av.arg + [None]*2)[0:2] def read_in(self): if self.inputfile is None: self.inputlines = pfile("stdin",sys.stdin.readlines()) @@ -316,11 +321,6 @@ class OpBase(): class OpConf(OpBase): opts = ['--conf'] help = 'sites.conf generation mode (default)' - def positional_args(self, av): - if len(av.arg)>3: - print("Too many arguments") - sys.exit(1) - (self.inputfile, self.outputfile) = (av.arg + [None]*2)[0:2] def check_group(self,group,w): pass def write_out(self): if self.outputfile is None: @@ -332,6 +332,19 @@ class OpConf(OpBase): if self.outputfile is not None: os.rename(tmp_outputfile,self.outputfile) +class OpFilter(OpBase): + opts = ['--filter'] + help = 'sites file filtering mode' + def positional_arXgs(self, av): + if len(av.arg)!=1: + print("Too many arguments") + (self.inputfile,) = (av.arg + [None])[0:1] + self.outputfile = None + def write_out_heading(self,f): + f.write("# --filter --output-version=%d\n"%output_version) + def write_out_contents(self,f): + for i in self.inputlines: f.write(i) + class OpUserv(OpBase): opts = ['--userv','-u'] help = 'userv service fragment update mode' @@ -408,6 +421,7 @@ def parse_args(): fn=(lambda v,ns,*x: setattr(ns,'opmode',how)), help=how().help) add_opmode(OpConf) + add_opmode(OpFilter) add_opmode(OpUserv) ap.add_argument('--conf-key-prefix', action=ActionNoYes, default=True,