Skip to content

Commit e44b2d2

Browse files
committed
Java/C#: Make it possible to specify subfolder location of generated model files.
1 parent 7c6d30b commit e44b2d2

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

misc/scripts/models-as-data/generate_flow_model.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ def __init__ (self, language):
4040

4141
def printHelp(self):
4242
print(f"""Usage:
43-
python3 GenerateFlowModel.py <library-database> [--with-sinks] [--with-sources] [--with-summaries] [--with-neutrals] [--with-typebased-summaries] [--dry-run]
43+
python3 GenerateFlowModel.py <library-database> [DIR] [--with-sinks] [--with-sources] [--with-summaries] [--with-neutrals] [--with-typebased-summaries] [--dry-run]
4444
4545
This generates summary, source, sink and neutral models for the code in the database.
46-
The files will be placed in `{self.language}/ql/lib/ext/generated/`.
46+
The files will be placed in `{self.language}/ql/lib/ext/generated/DIR`
4747
4848
Which models are generated is controlled by the flags:
4949
--with-sinks
@@ -58,16 +58,18 @@ def printHelp(self):
5858
Example invocations:
5959
$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db
6060
$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks
61+
$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks my_directory
62+
6163
6264
Requirements: `codeql` should both appear on your path.
6365
""")
6466

6567

66-
def setenvironment(self, database):
68+
def setenvironment(self, database, folder):
6769
self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip()
6870
self.database = database
6971
self.generatedFrameworks = os.path.join(
70-
self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/")
72+
self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{folder}")
7173
self.workDir = tempfile.mkdtemp()
7274
os.makedirs(self.generatedFrameworks, exist_ok=True)
7375

@@ -106,11 +108,15 @@ def make(language):
106108
if not generator.generateSinks and not generator.generateSources and not generator.generateSummaries and not generator.generateNeutrals and not generator.generateTypeBasedSummaries:
107109
generator.generateSinks = generator.generateSources = generator.generateSummaries = generator.generateNeutrals = True
108110

109-
if len(sys.argv) < 2:
111+
n = len(sys.argv)
112+
if n < 2:
110113
generator.printHelp()
111114
sys.exit(1)
115+
elif n == 2:
116+
generator.setenvironment(sys.argv[1], "")
117+
else:
118+
generator.setenvironment(sys.argv[1], sys.argv[2])
112119

113-
generator.setenvironment(sys.argv[1])
114120
return generator
115121

116122

0 commit comments

Comments
 (0)