@@ -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
4545This 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
4848Which models are generated is controlled by the flags:
4949 --with-sinks
@@ -58,16 +58,18 @@ def printHelp(self):
5858Example 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
6264Requirements: `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