Commit 27a69e14b95727a70bc05d444b8d6bd7047b646d
1 parent
52dc2d70
introduce return codes
Showing
1 changed file
with
9 additions
and
0 deletions
oletools/olevba.py
| ... | ... | @@ -314,6 +314,13 @@ class MsoExtractionError(RuntimeError): |
| 314 | 314 | |
| 315 | 315 | #--- CONSTANTS ---------------------------------------------------------------- |
| 316 | 316 | |
| 317 | +# return codes | |
| 318 | +RETURN_OK = 0 | |
| 319 | +RETURN_PARSE_ERROR = 1 | |
| 320 | +RETURN_OPEN_ERROR = 2 | |
| 321 | +RETURN_FILE_NOT_FOUND = 3 | |
| 322 | +RETURN_UNEXPECTED = 4 | |
| 323 | + | |
| 317 | 324 | # URL and message to report issues: |
| 318 | 325 | URL_OLEVBA_ISSUES = 'https://bitbucket.org/decalage/oletools/issues' |
| 319 | 326 | MSG_OLEVBA_ISSUES = 'Please report this issue on %s' % URL_OLEVBA_ISSUES |
| ... | ... | @@ -2886,6 +2893,7 @@ def main(): |
| 2886 | 2893 | count = 0 |
| 2887 | 2894 | container = filename = data = None |
| 2888 | 2895 | vba_parser = None |
| 2896 | + return_code = RETURN_OK | |
| 2889 | 2897 | for container, filename, data in xglob.iter_files(args, recursive=options.recursive, |
| 2890 | 2898 | zip_password=options.zip_password, zip_fname=options.zip_fname): |
| 2891 | 2899 | # ignore directory names stored in zip files: |
| ... | ... | @@ -2896,6 +2904,7 @@ def main(): |
| 2896 | 2904 | vba_parser = VBA_Parser_CLI(filename, data=data, container=container) |
| 2897 | 2905 | except FileOpenError as exc: |
| 2898 | 2906 | log.exception('Failed to open %s (%s)!' % (filename, exc)) |
| 2907 | + return_code = max(return_code, RETURN_OPEN_ERROR) | |
| 2899 | 2908 | continue |
| 2900 | 2909 | |
| 2901 | 2910 | if options.output_mode == 'detailed': | ... | ... |