From: Ian Jackson Date: Wed, 4 Dec 2019 16:56:31 +0000 (+0000) Subject: make-secnet-sites: Provide --filter mode X-Git-Tag: v0.6.0~57 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=355d8aa82ff35e6ab5e195a6030aa88a8c8f53a8 make-secnet-sites: Provide --filter mode Signed-off-by: Ian Jackson --- diff --git a/README.make-secnet-sites b/README.make-secnet-sites index 21d7291..cbf304e 100644 --- a/README.make-secnet-sites +++ b/README.make-secnet-sites @@ -1,6 +1,7 @@ USAGE make-secnet-sites [-P PREFIX] [--conf] [IN [OUTCONF]] + make-secnet-sites --filter [IN [OUT]] make-secnet-sites -u|--userv HEADER GRPDIR SITESFILE GROUP The `-P' option sets the PREFIX string, mentioned below in @@ -10,6 +11,11 @@ USAGE file from IN (defaulting to standard input), and writes a Secnet configuration fragment to OUTCONF (defaulting to standard output). + In --filter mode, `make-secnet-sites' reads a single input + file from IN (defaulting to standard input), and writes a + version of that sites file to OUT (defaulting to standard + output). The output is filtered according to --output-version. + In --userv mode, `make-secnet-sites' expects to have been invoked via GNU Userv. It verifies that GROUP is listed in the `USERV_GROUP' environment variable. It then processes the diff --git a/make-secnet-sites b/make-secnet-sites index 751479d..a84479c 100755 --- a/make-secnet-sites +++ b/make-secnet-sites @@ -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,