mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Shared: Update the model generator script to allow execution of the mixed model generator queries.
This commit is contained in:
@@ -33,7 +33,8 @@ class Generator:
|
||||
self.generateSources = False
|
||||
self.generateSummaries = False
|
||||
self.generateNeutrals = False
|
||||
self.generateContentSummaries = False
|
||||
self.generateMixedSummaries = False
|
||||
self.generateMixedNeutrals = False
|
||||
self.generateTypeBasedSummaries = False
|
||||
self.dryRun = False
|
||||
self.dirname = "modelgenerator"
|
||||
@@ -51,7 +52,8 @@ Which models are generated is controlled by the flags:
|
||||
--with-sources
|
||||
--with-summaries
|
||||
--with-neutrals
|
||||
--with-content-summaries (Experimental). May not be used in conjunction with --with-summaries
|
||||
--with-mixed-summaries (Experimental). May not be used in conjunction with --with-summaries.
|
||||
--with-mixed-neutrals (Experimental). Should only be used in conjunction with --with-mixed-summaries.
|
||||
--with-typebased-summaries (Experimental)
|
||||
If none of these flags are specified, all models are generated except for the type based models.
|
||||
|
||||
@@ -83,7 +85,7 @@ Requirements: `codeql` should both appear on your path.
|
||||
generator.printHelp()
|
||||
sys.exit(0)
|
||||
|
||||
if "--with-summaries" in sys.argv and "--with-content-summaries" in sys.argv:
|
||||
if "--with-summaries" in sys.argv and "--with-mixed-summaries" in sys.argv:
|
||||
generator.printHelp()
|
||||
sys.exit(0)
|
||||
|
||||
@@ -103,9 +105,13 @@ Requirements: `codeql` should both appear on your path.
|
||||
sys.argv.remove("--with-neutrals")
|
||||
generator.generateNeutrals = True
|
||||
|
||||
if "--with-content-summaries" in sys.argv:
|
||||
sys.argv.remove("--with-content-summaries")
|
||||
generator.generateContentSummaries = 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
|
||||
|
||||
if "--with-typebased-summaries" in sys.argv:
|
||||
sys.argv.remove("--with-typebased-summaries")
|
||||
@@ -115,7 +121,13 @@ Requirements: `codeql` should both appear on your path.
|
||||
sys.argv.remove("--dry-run")
|
||||
generator.dryRun = True
|
||||
|
||||
if not generator.generateSinks and not generator.generateSources and not generator.generateSummaries and not generator.generateNeutrals and not generator.generateTypeBasedSummaries and not generator.generateContentSummaries:
|
||||
if (not generator.generateSinks and
|
||||
not generator.generateSources and
|
||||
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
|
||||
|
||||
n = len(sys.argv)
|
||||
@@ -173,12 +185,17 @@ Requirements: `codeql` should both appear on your path.
|
||||
else:
|
||||
neutralAddsTo = { }
|
||||
|
||||
if self.generateContentSummaries:
|
||||
contentSummaryAddsTo = self.getAddsTo("CaptureContentSummaryModels.ql", helpers.summaryModelPredicate)
|
||||
if self.generateMixedSummaries:
|
||||
mixedSummaryAddsTo = self.getAddsTo("CaptureMixedSummaryModels.ql", helpers.summaryModelPredicate)
|
||||
else:
|
||||
contentSummaryAddsTo = { }
|
||||
mixedSummaryAddsTo = { }
|
||||
|
||||
return helpers.merge(summaryAddsTo, contentSummaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo)
|
||||
if self.generateMixedNeutrals:
|
||||
mixedNeutralAddsTo = self.getAddsTo("CaptureMixedNeutralModels.ql", helpers.neutralModelPredicate)
|
||||
else:
|
||||
mixedNeutralAddsTo = { }
|
||||
|
||||
return helpers.merge(summaryAddsTo, mixedSummaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo, mixedNeutralAddsTo)
|
||||
|
||||
def makeTypeBasedContent(self):
|
||||
if self.generateTypeBasedSummaries:
|
||||
@@ -208,7 +225,12 @@ extensions:
|
||||
print("Models as data extensions generated, but not written to file.")
|
||||
sys.exit(0)
|
||||
|
||||
if self.generateSinks or self.generateSources or self.generateSummaries or self.generateNeutrals:
|
||||
if (self.generateSinks or
|
||||
self.generateSources or
|
||||
self.generateSummaries or
|
||||
self.generateNeutrals or
|
||||
self.generateMixedSummaries or
|
||||
self.generatedMixedNeutrals):
|
||||
self.save(content, ".model.yml")
|
||||
|
||||
if self.generateTypeBasedSummaries:
|
||||
|
||||
Reference in New Issue
Block a user