@@ -40,10 +40,10 @@ def __init__ (self, language):
40
40
41
41
def printHelp (self ):
42
42
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]
44
44
45
45
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`
47
47
48
48
Which models are generated is controlled by the flags:
49
49
--with-sinks
@@ -58,16 +58,18 @@ def printHelp(self):
58
58
Example invocations:
59
59
$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db
60
60
$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks
61
+ $ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks my_directory
62
+
61
63
62
64
Requirements: `codeql` should both appear on your path.
63
65
""" )
64
66
65
67
66
- def setenvironment (self , database ):
68
+ def setenvironment (self , database , folder ):
67
69
self .codeQlRoot = subprocess .check_output (["git" , "rev-parse" , "--show-toplevel" ]).decode ("utf-8" ).strip ()
68
70
self .database = database
69
71
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 } " )
71
73
self .workDir = tempfile .mkdtemp ()
72
74
os .makedirs (self .generatedFrameworks , exist_ok = True )
73
75
@@ -106,11 +108,15 @@ def make(language):
106
108
if not generator .generateSinks and not generator .generateSources and not generator .generateSummaries and not generator .generateNeutrals and not generator .generateTypeBasedSummaries :
107
109
generator .generateSinks = generator .generateSources = generator .generateSummaries = generator .generateNeutrals = True
108
110
109
- if len (sys .argv ) < 2 :
111
+ n = len (sys .argv )
112
+ if n < 2 :
110
113
generator .printHelp ()
111
114
sys .exit (1 )
115
+ elif n == 2 :
116
+ generator .setenvironment (sys .argv [1 ], "" )
117
+ else :
118
+ generator .setenvironment (sys .argv [1 ], sys .argv [2 ])
112
119
113
- generator .setenvironment (sys .argv [1 ])
114
120
return generator
115
121
116
122
0 commit comments