dissect.target 3.8.dev33__py3-none-any.whl → 3.8.dev34__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- dissect/target/tools/shell.py +32 -0
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/METADATA +1 -1
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/RECORD +8 -8
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/COPYRIGHT +0 -0
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/LICENSE +0 -0
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/WHEEL +0 -0
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/entry_points.txt +0 -0
- {dissect.target-3.8.dev33.dist-info → dissect.target-3.8.dev34.dist-info}/top_level.txt +0 -0
dissect/target/tools/shell.py
CHANGED
@@ -143,6 +143,15 @@ class TargetCmd(cmd.Cmd):
|
|
143
143
|
|
144
144
|
return cmd.Cmd.default(self, line)
|
145
145
|
|
146
|
+
def emptyline(self):
|
147
|
+
"""This function forces Python's cmd.Cmd module to behave like a regular shell.
|
148
|
+
|
149
|
+
When entering an empty command, the cmd module will by default repeat the previous command.
|
150
|
+
By defining an empty ``emptyline`` function we make sure no command is executed instead.
|
151
|
+
See https://stackoverflow.com/a/16479030
|
152
|
+
"""
|
153
|
+
pass
|
154
|
+
|
146
155
|
def _exec(self, func, command_args_str):
|
147
156
|
"""
|
148
157
|
Command execution helper that chains initial command and piped
|
@@ -720,6 +729,20 @@ class TargetCli(TargetCmd):
|
|
720
729
|
shutil.copyfileobj(fh, stdout)
|
721
730
|
stdout.flush()
|
722
731
|
|
732
|
+
@arg("path")
|
733
|
+
def cmd_zcat(self, args, stdout):
|
734
|
+
"""print file content from compressed files"""
|
735
|
+
paths = self.resolveglobpath(args.path)
|
736
|
+
stdout = stdout.buffer
|
737
|
+
for path in paths:
|
738
|
+
path = self.checkfile(path)
|
739
|
+
if not path:
|
740
|
+
continue
|
741
|
+
|
742
|
+
fh = fsutil.open_decompress(path)
|
743
|
+
shutil.copyfileobj(fh, stdout)
|
744
|
+
stdout.flush()
|
745
|
+
|
723
746
|
@arg("path")
|
724
747
|
def cmd_hexdump(self, args, stdout):
|
725
748
|
"""print a hexdump of the first X bytes"""
|
@@ -748,6 +771,15 @@ class TargetCli(TargetCmd):
|
|
748
771
|
|
749
772
|
pydoc.pager(path.open("rt", errors="ignore").read(10 * 1024 * 1024))
|
750
773
|
|
774
|
+
@arg("path")
|
775
|
+
def cmd_zless(self, args, stdout):
|
776
|
+
"""open the first 10 MB of a compressed file with zless"""
|
777
|
+
path = self.checkfile(args.path)
|
778
|
+
if not path:
|
779
|
+
return
|
780
|
+
|
781
|
+
pydoc.pager(fsutil.open_decompress(path, "rt").read(10 * 1024 * 1024))
|
782
|
+
|
751
783
|
@arg("path", nargs="+")
|
752
784
|
def cmd_readlink(self, args, stdout):
|
753
785
|
"""print resolved symbolic links or canonical file names"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.8.
|
3
|
+
Version: 3.8.dev34
|
4
4
|
Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
6
6
|
License: Affero General Public License v3
|
@@ -240,7 +240,7 @@ dissect/target/tools/logging.py,sha256=5ZnumtMWLyslxfrUGZ4ntRyf3obOOhmn8SBjKfdLc
|
|
240
240
|
dissect/target/tools/mount.py,sha256=oPjE954wRPnuhiXavoTSoZkMGKa5GpH9cMWZ3-piQd8,2320
|
241
241
|
dissect/target/tools/query.py,sha256=Btt_PMVAWIYHhPLg0b8u5e_TDdG8CG5xapxLu82dbSE,11466
|
242
242
|
dissect/target/tools/reg.py,sha256=37g_Xdb5ZbYAkMgQFmZNdKM_wWP9Bcw2Kk6quo1gwZ4,2147
|
243
|
-
dissect/target/tools/shell.py,sha256
|
243
|
+
dissect/target/tools/shell.py,sha256=HICeIN5kCZYyGmAm_riWO9xrGnQmOzSp-Oici4QeO6Y,36003
|
244
244
|
dissect/target/tools/utils.py,sha256=i9gHb-_IK73NEiA9sKVCPkeY80lRj_RYpGXnsy_4Ak8,6727
|
245
245
|
dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
246
246
|
dissect/target/tools/dump/run.py,sha256=yHn9xl_VjasgiuLpjtZdnLW32QCbkwHfnnTPY6Ck_aw,9689
|
@@ -251,10 +251,10 @@ dissect/target/volumes/bde.py,sha256=gYGg5yF9MNARwNzEkrEfZmKkxyZW4rhLkpdnPJCbhGk
|
|
251
251
|
dissect/target/volumes/disk.py,sha256=95grSsPt1BLVpKwTclwQYzPFGKTkFFqapIk0RoGWf38,968
|
252
252
|
dissect/target/volumes/lvm.py,sha256=zXAfszxNR6tOGrKAtAa_E-JhjI-sXQyR4VYLXD-kqCw,1616
|
253
253
|
dissect/target/volumes/vmfs.py,sha256=mlAJ8278tYaoRjk1u6tFFlCaDQUrVu5ZZE4ikiFvxi8,1707
|
254
|
-
dissect.target-3.8.
|
255
|
-
dissect.target-3.8.
|
256
|
-
dissect.target-3.8.
|
257
|
-
dissect.target-3.8.
|
258
|
-
dissect.target-3.8.
|
259
|
-
dissect.target-3.8.
|
260
|
-
dissect.target-3.8.
|
254
|
+
dissect.target-3.8.dev34.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
|
255
|
+
dissect.target-3.8.dev34.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
256
|
+
dissect.target-3.8.dev34.dist-info/METADATA,sha256=w87iqHAzoUqr5rasT7zTj2DHOnBqHTJK0SFJctHj9l8,9752
|
257
|
+
dissect.target-3.8.dev34.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
258
|
+
dissect.target-3.8.dev34.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
|
259
|
+
dissect.target-3.8.dev34.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
|
260
|
+
dissect.target-3.8.dev34.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|