ntfsdump 3.3.0__tar.gz → 3.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/PKG-INFO +1 -1
- ntfsdump-3.3.1/src/ntfsdump/__about__.py +2 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/cli.py +1 -1
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/core.py +5 -0
- ntfsdump-3.3.1/tests/ntfsdump/test_core.py +45 -0
- ntfsdump-3.3.0/src/ntfsdump/__about__.py +0 -2
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.devcontainer/Dockerfile +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.devcontainer/devcontainer.json +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.devcontainer/postCreateCommands.fish +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.github/workflows/publish-binary-pypi.yaml +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.github/workflows/publish-release.yaml +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.github/workflows/test.yaml +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/.gitignore +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/Dockerfile +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/LICENSE +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/README.md +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/docker-compose.yml +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/pyproject.toml +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/__init__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/__main__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/errors.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/__init__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/base.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/detect.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/e01.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/raw.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/vhd.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/formats/vmdk.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/image.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/logger.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/sources/__init__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/sources/resolver.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/vmware/__init__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/vmware/metadata.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/src/ntfsdump/volume.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/cache/.gitkeep +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/conftest.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/fixtures/vmware/SingleVM/SingleVM.vmx +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/fixtures/vmware/WindowsVM/WindowsVM.vmsd +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/fixtures/vmware/WindowsVM/WindowsVM.vmx +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test__init__.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_cli.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_detect.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_source.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_vhd_real.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_vhdx_chain.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_vhdx_real.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_vmdk_chain.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/tests/ntfsdump/test_vmware.py +0 -0
- {ntfsdump-3.3.0 → ntfsdump-3.3.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ntfsdump
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.1
|
|
4
4
|
Summary: A command-line tool for efficiently extracting files, directories, and alternate data streams directly from NTFS image files.
|
|
5
5
|
Project-URL: Homepage, https://github.com/sumeshi/ntfsdump
|
|
6
6
|
Project-URL: Repository, https://github.com/sumeshi/ntfsdump
|
|
@@ -241,6 +241,7 @@ def _run(args) -> None:
|
|
|
241
241
|
snapshot=args.snapshot,
|
|
242
242
|
disk=args.disk,
|
|
243
243
|
flat=args.flat,
|
|
244
|
+
quiet=args.quiet,
|
|
244
245
|
)
|
|
245
246
|
|
|
246
247
|
|
|
@@ -248,7 +249,6 @@ def main(argv: Optional[Iterable[str]] = None) -> int:
|
|
|
248
249
|
parser = create_parser()
|
|
249
250
|
args = parser.parse_args(argv)
|
|
250
251
|
|
|
251
|
-
MetaData.quiet = args.quiet
|
|
252
252
|
configure_logging(args.log)
|
|
253
253
|
|
|
254
254
|
try:
|
|
@@ -3,6 +3,7 @@ from pathlib import Path
|
|
|
3
3
|
from typing import Optional, Union
|
|
4
4
|
|
|
5
5
|
from ntfsdump.image import ImageFile
|
|
6
|
+
from ntfsdump.logger import MetaData
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
def ntfsdump(
|
|
@@ -14,6 +15,7 @@ def ntfsdump(
|
|
|
14
15
|
snapshot=None,
|
|
15
16
|
disk: Optional[int] = None,
|
|
16
17
|
flat: bool = False,
|
|
18
|
+
quiet: bool = False,
|
|
17
19
|
) -> None:
|
|
18
20
|
"""A tool for extracting files from an NTFS volume on a disk image.
|
|
19
21
|
|
|
@@ -27,7 +29,10 @@ def ntfsdump(
|
|
|
27
29
|
snapshot (optional): VMware snapshot ID to read. Defaults to None.
|
|
28
30
|
disk (Optional[int], optional): VMware virtual disk ID to read. Defaults to None.
|
|
29
31
|
flat (bool, optional): reconstruct directory tree or not. Defaults to False.
|
|
32
|
+
quiet (bool, optional): suppress progress lines on stdout.
|
|
33
|
+
Errors are still written to stderr. Defaults to False.
|
|
30
34
|
"""
|
|
35
|
+
MetaData.quiet = quiet
|
|
31
36
|
img = ImageFile(
|
|
32
37
|
source,
|
|
33
38
|
volume=volume,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
import pytest
|
|
3
|
+
|
|
4
|
+
from ntfsdump import core
|
|
5
|
+
from ntfsdump.logger import MetaData
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_ntfsdump_resets_leaked_quiet_state(tmp_path, monkeypatch):
|
|
9
|
+
# A previous ntfsfind(verbose=True) call may leave MetaData.quiet=True
|
|
10
|
+
# in the same process; core.ntfsdump() must reset it explicitly.
|
|
11
|
+
monkeypatch.setattr(MetaData, 'quiet', True)
|
|
12
|
+
|
|
13
|
+
with pytest.raises(Exception):
|
|
14
|
+
core.ntfsdump(source=str(tmp_path), paths=['/$MFT'])
|
|
15
|
+
|
|
16
|
+
assert MetaData.quiet is False
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def test_ntfsdump_quiet_flag_is_applied(tmp_path, monkeypatch):
|
|
20
|
+
monkeypatch.setattr(MetaData, 'quiet', False)
|
|
21
|
+
|
|
22
|
+
with pytest.raises(Exception):
|
|
23
|
+
core.ntfsdump(source=str(tmp_path), paths=['/$MFT'], quiet=True)
|
|
24
|
+
|
|
25
|
+
assert MetaData.quiet is True
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_cli_passes_quiet_to_core(monkeypatch):
|
|
29
|
+
from ntfsdump import cli
|
|
30
|
+
|
|
31
|
+
captured = {}
|
|
32
|
+
|
|
33
|
+
def fake_ntfsdump(**kwargs):
|
|
34
|
+
captured.update(kwargs)
|
|
35
|
+
|
|
36
|
+
monkeypatch.setattr(cli, 'ntfsdump', fake_ntfsdump)
|
|
37
|
+
monkeypatch.setattr(
|
|
38
|
+
cli.SourceResolver,
|
|
39
|
+
'resolve',
|
|
40
|
+
lambda self, source, **kwargs: object(),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
cli.main([str('/nonexistent'), '/$MFT', '--quiet'])
|
|
44
|
+
|
|
45
|
+
assert captured['quiet'] is True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|