Commit 27a69e14b95727a70bc05d444b8d6bd7047b646d

Authored by Christian Herdtweck
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':
... ...