diff --git a/misc/scripts/models-as-data/generate_flow_model.py b/misc/scripts/models-as-data/generate_flow_model.py index 61712d96d26..dba468762b7 100755 --- a/misc/scripts/models-as-data/generate_flow_model.py +++ b/misc/scripts/models-as-data/generate_flow_model.py @@ -34,7 +34,6 @@ class Generator: self.generateSources = False self.generateSummaries = False self.generateNeutrals = False - self.generateMixedSummaries = False self.generateMixedNeutrals = False self.generateTypeBasedSummaries = False self.dryRun = False @@ -53,8 +52,7 @@ Which models are generated is controlled by the flags: --with-sources --with-summaries --with-neutrals - --with-mixed-summaries. May not be used in conjunction with --with-summaries. - --with-mixed-neutrals. Should only be used in conjunction with --with-mixed-summaries. + --with-mixed-neutrals. Should only be used in conjunction with --with-summaries. --with-typebased-summaries (Experimental) If none of these flags are specified, all models are generated except for the type based models. @@ -86,9 +84,10 @@ Requirements: `codeql` should appear on your path. generator.printHelp() sys.exit(0) - if "--with-summaries" in sys.argv and "--with-mixed-summaries" in sys.argv: - generator.printHelp() - sys.exit(0) + # Convert --with-mixed-summaries to --with-summaries for backward compatibility + if "--with-mixed-summaries" in sys.argv: + sys.argv.remove("--with-mixed-summaries") + sys.argv.append("--with-summaries") if "--with-sinks" in sys.argv: sys.argv.remove("--with-sinks") @@ -106,10 +105,6 @@ Requirements: `codeql` should appear on your path. sys.argv.remove("--with-neutrals") generator.generateNeutrals = True - if "--with-mixed-summaries" in sys.argv: - sys.argv.remove("--with-mixed-summaries") - generator.generateMixedSummaries = True - if "--with-mixed-neutrals" in sys.argv: sys.argv.remove("--with-mixed-neutrals") generator.generateMixedNeutrals = True @@ -127,7 +122,6 @@ Requirements: `codeql` should appear on your path. not generator.generateSummaries and not generator.generateNeutrals and not generator.generateTypeBasedSummaries and - not generator.generateMixedSummaries and not generator.generateMixedNeutrals): generator.generateSinks = generator.generateSources = generator.generateSummaries = generator.generateNeutrals = True @@ -166,37 +160,27 @@ Requirements: `codeql` should appear on your path. return self.asAddsTo(rows, predicate) def makeContent(self): + summaryAddsTo = {} if self.generateSummaries: - summaryAddsTo = self.getAddsTo("CaptureSummaryModels.ql", helpers.summaryModelPredicate) - else: - summaryAddsTo = { } + summaryAddsTo = self.getAddsTo("CaptureMixedSummaryModels.ql", helpers.summaryModelPredicate) + sinkAddsTo = {} if self.generateSinks: sinkAddsTo = self.getAddsTo("CaptureSinkModels.ql", helpers.sinkModelPredicate) - else: - sinkAddsTo = { } + sourceAddsTo = {} if self.generateSources: sourceAddsTo = self.getAddsTo("CaptureSourceModels.ql", helpers.sourceModelPredicate) - else: - sourceAddsTo = {} + neutralAddsTo = {} if self.generateNeutrals: neutralAddsTo = self.getAddsTo("CaptureNeutralModels.ql", helpers.neutralModelPredicate) - else: - neutralAddsTo = { } - - if self.generateMixedSummaries: - mixedSummaryAddsTo = self.getAddsTo("CaptureMixedSummaryModels.ql", helpers.summaryModelPredicate) - else: - mixedSummaryAddsTo = { } + mixedNeutralAddsTo = {} if self.generateMixedNeutrals: mixedNeutralAddsTo = self.getAddsTo("CaptureMixedNeutralModels.ql", helpers.neutralModelPredicate) - else: - mixedNeutralAddsTo = { } - return helpers.merge(summaryAddsTo, mixedSummaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo, mixedNeutralAddsTo) + return helpers.merge(summaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo, mixedNeutralAddsTo) def makeTypeBasedContent(self): if self.generateTypeBasedSummaries: @@ -232,8 +216,7 @@ extensions: self.generateSources or self.generateSummaries or self.generateNeutrals or - self.generateMixedSummaries or - self.generatedMixedNeutrals): + self.generateMixedNeutrals): self.save(content, ".model.yml") if self.generateTypeBasedSummaries: