@@ -93,13 +93,15 @@ def main(argv=None):
93
93
action = "store" ,
94
94
choices = ["api" , "json" ],
95
95
help = "choose method for getting CVE lists from NVD" ,
96
+ default = "api" ,
96
97
)
97
98
nvd_database_group .add_argument (
98
99
"-u" ,
99
100
"--update" ,
100
101
action = "store" ,
101
102
choices = ["now" , "daily" , "never" , "latest" ],
102
103
help = "update schedule for NVD database (default: daily)" ,
104
+ default = "daily" ,
103
105
)
104
106
nvd_database_group .add_argument (
105
107
"--nvd-api-key" ,
@@ -110,7 +112,7 @@ def main(argv=None):
110
112
111
113
input_group = parser .add_argument_group ("Input" )
112
114
input_group .add_argument (
113
- "directory" , help = "directory to scan" , nargs = "?" , default = None
115
+ "directory" , help = "directory to scan" , nargs = "?" , default = ""
114
116
)
115
117
input_group .add_argument (
116
118
"-i" ,
@@ -136,11 +138,16 @@ def main(argv=None):
136
138
"--sbom-file" ,
137
139
action = "store" ,
138
140
help = "provide sbom filename" ,
141
+ default = "" ,
139
142
)
140
143
141
144
output_group = parser .add_argument_group ("Output" )
142
145
output_group .add_argument (
143
- "-q" , "--quiet" , action = "store_true" , help = "suppress output"
146
+ "-q" ,
147
+ "--quiet" ,
148
+ action = "store_true" ,
149
+ help = "suppress output" ,
150
+ default = False ,
144
151
)
145
152
output_group .add_argument (
146
153
"-l" ,
@@ -149,42 +156,49 @@ def main(argv=None):
149
156
dest = "log_level" ,
150
157
action = "store" ,
151
158
choices = ["debug" , "info" , "warning" , "error" , "critical" ],
159
+ default = "info" ,
152
160
)
153
161
output_group .add_argument (
154
162
"-o" ,
155
163
"--output-file" ,
156
164
action = "store" ,
157
165
help = "provide output filename (default: output to stdout)" ,
166
+ default = "" ,
158
167
)
159
168
output_group .add_argument (
160
169
"--html-theme" ,
161
170
action = "store" ,
162
171
help = "provide custom theme directory for HTML Report" ,
172
+ default = "" ,
163
173
)
164
174
output_group .add_argument (
165
175
"-f" ,
166
176
"--format" ,
167
177
action = "store" ,
168
178
choices = ["csv" , "json" , "console" , "html" , "pdf" ],
169
179
help = "update output format (default: console)" ,
180
+ default = "console" ,
170
181
)
171
182
output_group .add_argument (
172
183
"-c" ,
173
184
"--cvss" ,
174
185
action = "store" ,
175
186
help = "minimum CVSS score (as integer in range 0 to 10) to report (default: 0)" ,
187
+ default = 0 ,
176
188
)
177
189
output_group .add_argument (
178
190
"-S" ,
179
191
"--severity" ,
180
192
action = "store" ,
181
193
choices = ["low" , "medium" , "high" , "critical" ],
182
194
help = "minimum CVE severity to report (default: low)" ,
195
+ default = "low" ,
183
196
)
184
197
output_group .add_argument (
185
198
"--report" ,
186
199
action = "store_true" ,
187
200
help = "Produces a report even if there are no CVE for the respective output format" ,
201
+ default = False ,
188
202
)
189
203
output_group .add_argument (
190
204
"-A" ,
@@ -195,6 +209,7 @@ def main(argv=None):
195
209
choices = get_available_fix_supported_distros (),
196
210
metavar = "<distro_name>-<distro_version_name>" ,
197
211
help = "Lists available fixes of the package from Linux distribution" ,
212
+ default = "" ,
198
213
)
199
214
output_group .add_argument (
200
215
"-b" ,
@@ -205,6 +220,7 @@ def main(argv=None):
205
220
choices = get_backport_supported_distros (),
206
221
metavar = "<distro_name>-<distro_version_name>" ,
207
222
help = "Lists backported fixes if available from Linux distribution" ,
223
+ default = "" ,
208
224
)
209
225
output_group .add_argument (
210
226
"--affected-versions" ,
@@ -218,18 +234,20 @@ def main(argv=None):
218
234
"--exclude" ,
219
235
action = StringToListAction ,
220
236
help = "Comma separated Exclude directory path" ,
221
- default = None ,
237
+ default = [] ,
222
238
)
223
239
parser .add_argument ("-V" , "--version" , action = "version" , version = VERSION )
224
240
parser .add_argument (
225
241
"--disable-version-check" ,
226
242
action = "store_true" ,
227
243
help = "skips checking for a new version" ,
244
+ default = False ,
228
245
)
229
246
parser .add_argument (
230
247
"--offline" ,
231
248
action = "store_true" ,
232
249
help = "operate in offline mode" ,
250
+ default = False ,
233
251
)
234
252
235
253
merge_report_group = parser .add_argument_group (
@@ -241,24 +259,28 @@ def main(argv=None):
241
259
nargs = "?" ,
242
260
const = True ,
243
261
help = "save output as intermediate report in json format" ,
262
+ default = False ,
244
263
)
245
264
merge_report_group .add_argument (
246
265
"-t" ,
247
266
"--tag" ,
248
267
action = "store" ,
249
268
help = "add a unique tag to differentiate between multiple intermediate reports" ,
269
+ default = "" ,
250
270
)
251
271
merge_report_group .add_argument (
252
272
"-m" ,
253
273
"--merge" ,
254
274
action = StringToListAction ,
255
275
help = "comma separated intermediate reports path for merging" ,
276
+ default = None ,
256
277
)
257
278
merge_report_group .add_argument (
258
279
"-F" ,
259
280
"--filter" ,
260
281
action = StringToListAction ,
261
282
help = "comma separated tag string for filtering intermediate reports" ,
283
+ default = [],
262
284
)
263
285
264
286
checker_group = parser .add_argument_group ("Checkers" )
@@ -269,6 +291,7 @@ def main(argv=None):
269
291
action = StringToListAction ,
270
292
type = str ,
271
293
help = "comma-separated list of checkers to disable" ,
294
+ default = "" ,
272
295
)
273
296
checker_group .add_argument (
274
297
"-r" ,
@@ -277,6 +300,7 @@ def main(argv=None):
277
300
action = StringToListAction ,
278
301
type = str ,
279
302
help = "comma-separated list of checkers to enable" ,
303
+ default = "" ,
280
304
)
281
305
282
306
deprecated_group = parser .add_argument_group ("Deprecated" )
@@ -285,43 +309,13 @@ def main(argv=None):
285
309
"--extract" ,
286
310
action = "store_true" ,
287
311
help = "autoextract compressed files" ,
312
+ default = True ,
288
313
)
289
314
290
- defaults = {
291
- "directory" : "" ,
292
- "exclude" : [],
293
- "input_file" : "" ,
294
- "log_level" : "info" ,
295
- "format" : "console" ,
296
- "cvss" : 0 ,
297
- "severity" : "low" ,
298
- "update" : "daily" ,
299
- "extract" : True ,
300
- "disable_version_check" : False ,
301
- "skips" : "" ,
302
- "runs" : "" ,
303
- "quiet" : False ,
304
- "output_file" : "" ,
305
- "html_theme" : "" ,
306
- "report" : False ,
307
- "package_list" : "" ,
308
- "append" : False ,
309
- "tag" : "" ,
310
- "merge" : None ,
311
- "backport_fix" : "" ,
312
- "available_fix" : "" ,
313
- "nvd" : "api" ,
314
- "nvd_api_key" : "" ,
315
- "filter" : [],
316
- "affected_versions" : 0 ,
317
- "sbom" : "spdx" ,
318
- "sbom_file" : "" ,
319
- "offline" : False ,
320
- }
321
-
322
315
with ErrorHandler (mode = ErrorMode .NoTrace ):
323
316
raw_args = parser .parse_args (argv [1 :])
324
317
args = {key : value for key , value in vars (raw_args ).items () if value }
318
+ defaults = {key : parser .get_default (key ) for key in vars (raw_args )}
325
319
326
320
configs = {}
327
321
if args .get ("config" ):
0 commit comments