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