From a5b4babc689d21aae410139fe204ed38708a158b Mon Sep 17 00:00:00 2001 From: Joachim Metz Date: Sun, 18 Sep 2022 06:25:49 +0200 Subject: [PATCH] Added _ScanSourcePathSpec to VolumeScanner helper (#692) --- config/dpkg/changelog | 4 ++-- dfvfs/__init__.py | 2 +- dfvfs/helpers/volume_scanner.py | 21 ++++++++++++++++++++- dfvfs/resolver_helpers/resolver_helper.py | 5 ++++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/config/dpkg/changelog b/config/dpkg/changelog index 2b4d5adb..71ba37f9 100644 --- a/config/dpkg/changelog +++ b/config/dpkg/changelog @@ -1,5 +1,5 @@ -dfvfs (20220831-1) unstable; urgency=low +dfvfs (20220917-1) unstable; urgency=low * Auto-generated - -- Log2Timeline maintainers Wed, 31 Aug 2022 21:13:48 +0200 + -- Log2Timeline maintainers Sat, 17 Sep 2022 18:46:00 +0200 diff --git a/dfvfs/__init__.py b/dfvfs/__init__.py index 90f3bacb..7b110cf3 100644 --- a/dfvfs/__init__.py +++ b/dfvfs/__init__.py @@ -6,4 +6,4 @@ storage media types and file formats. """ -__version__ = '20220831' +__version__ = '20220917' diff --git a/dfvfs/helpers/volume_scanner.py b/dfvfs/helpers/volume_scanner.py index 722b7c06..0ed4c356 100644 --- a/dfvfs/helpers/volume_scanner.py +++ b/dfvfs/helpers/volume_scanner.py @@ -540,8 +540,27 @@ def _ScanSource(self, source_path): raise errors.ScannerError( 'No such device, file or directory: {0:s}.'.format(source_path)) + source_path_spec = path_spec_factory.Factory.NewPathSpec( + definitions.TYPE_INDICATOR_OS, location=source_path) + + return self._ScanSourcePathSpec(source_path_spec) + + def _ScanSourcePathSpec(self, source_path_spec): + """Scans the source path specification for supported formats. + + Args: + source_path_spec (dfvfs.PathSpec): source path specification. + + Returns: + SourceScannerContext: source scanner context. + + Raises: + ScannerError: if the source path does not exists, or if the source path + is not a file or directory, or if the format of or within the source + file is not supported. + """ scan_context = source_scanner.SourceScannerContext() - scan_context.OpenSourcePath(source_path) + scan_context.AddScanNode(source_path_spec, None) try: self._source_scanner.Scan(scan_context) diff --git a/dfvfs/resolver_helpers/resolver_helper.py b/dfvfs/resolver_helpers/resolver_helper.py index ecabaf48..e6ba0fad 100644 --- a/dfvfs/resolver_helpers/resolver_helper.py +++ b/dfvfs/resolver_helpers/resolver_helper.py @@ -57,4 +57,7 @@ def NewFileSystem(self, resolver_context, path_spec): Raises: NotSupported: if there is no implementation to create a file system. """ - raise errors.NotSupported('Missing implementation to create file system.') + # pylint: disable=no-member + raise errors.NotSupported( + 'Missing implementation to create file system: {0:s}.'.format( + self.TYPE_INDICATOR))