diff --git a/libsast/__init__.py b/libsast/__init__.py index 354f67b..f070e9f 100644 --- a/libsast/__init__.py +++ b/libsast/__init__.py @@ -8,7 +8,7 @@ __title__ = 'libsast' __authors__ = 'Ajin Abraham' __copyright__ = 'Copyright 2020 Ajin Abraham, OpenSecurity' -__version__ = '1.4.2' +__version__ = '1.4.3' __version_info__ = tuple(int(i) for i in __version__.split('.')) __all__ = [ 'Scanner', diff --git a/libsast/scanner.py b/libsast/scanner.py index 5854a01..ee3959a 100644 --- a/libsast/scanner.py +++ b/libsast/scanner.py @@ -34,6 +34,10 @@ def __init__(self, options: dict, paths: list) -> None: 'ignore_paths': None, 'show_progress': False, } + if options.get('sgrep_extensions'): + self.sgrep_extensions = options.get('sgrep_extensions') + else: + self.sgrep_extensions = [] if options.get('ignore_extensions'): self.ignore_extensions = options.get('ignore_extensions') else: @@ -86,7 +90,12 @@ def validate_file(self, path): ignore_paths = any(pp in path.as_posix() for pp in self.ignore_paths) ignore_files = path.name in self.ignore_filenames ignore_exts = path.suffix.lower() in self.ignore_extensions - if (ignore_paths or ignore_files or ignore_exts): + if self.sgrep_extensions: + valid_exts = path.suffix.lower() in self.sgrep_extensions + else: + # Do not use extension check when no extensions are supplied + valid_exts = True + if (ignore_paths or ignore_files or ignore_exts or not valid_exts): return False if not path.exists() or not path.is_file(): return False