dissect.target 3.19.dev54__py3-none-any.whl → 3.19.dev55__py3-none-any.whl

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.
@@ -76,6 +76,9 @@ class LinuxPlugin(UnixPlugin, LinuxNetworkManager):
76
76
  or self._os_release.get("DISTRIB_RELEASE", "")
77
77
  )
78
78
 
79
+ if not any([name, version, distrib_description]):
80
+ return None
81
+
79
82
  if len(f"{name} {version}") > len(distrib_description):
80
83
  distrib_description = f"{name} {version}"
81
84
 
@@ -5,7 +5,7 @@ from dissect.target.plugins.os.unix.linux._os import LinuxPlugin
5
5
  from dissect.target.target import Target
6
6
 
7
7
 
8
- class RedHat(LinuxPlugin):
8
+ class RedHatPlugin(LinuxPlugin):
9
9
  def __init__(self, target: Target):
10
10
  super().__init__(target)
11
11
 
@@ -1,4 +1,7 @@
1
+ from __future__ import annotations
2
+
1
3
  from pathlib import Path
4
+ from typing import Iterator
2
5
 
3
6
  from dissect.target.helpers.localeutil import normalize_language
4
7
  from dissect.target.helpers.record import TargetRecordDescriptor
@@ -30,7 +33,7 @@ class LocalePlugin(Plugin):
30
33
  pass
31
34
 
32
35
  @export(property=True)
33
- def timezone(self):
36
+ def timezone(self) -> str | None:
34
37
  """Get the timezone of the system."""
35
38
 
36
39
  # /etc/timezone should contain a simple timezone string
@@ -58,15 +61,23 @@ class LocalePlugin(Plugin):
58
61
  size = p_localtime.stat().st_size
59
62
  sha1 = p_localtime.get().sha1()
60
63
  for path in self.target.fs.path("/usr/share/zoneinfo").rglob("*"):
64
+ # Ignore posix files in zoneinfo directory (RHEL).
65
+ if path.name.startswith("posix"):
66
+ continue
67
+
61
68
  if path.is_file() and path.stat().st_size == size and path.get().sha1() == sha1:
62
69
  return timezone_from_path(path)
63
70
 
64
71
  @export(property=True)
65
- def language(self):
72
+ def language(self) -> list[str]:
66
73
  """Get the configured locale(s) of the system."""
67
- # Although this purports to be a generic function for Unix targets,
68
- # these paths are Linux specific.
69
- locale_paths = ["/etc/default/locale", "/etc/locale.conf"]
74
+
75
+ # Although this purports to be a generic function for Unix targets, these paths are Linux specific.
76
+ locale_paths = [
77
+ "/etc/default/locale",
78
+ "/etc/locale.conf",
79
+ "/etc/sysconfig/i18n",
80
+ ]
70
81
 
71
82
  found_languages = []
72
83
 
@@ -79,7 +90,7 @@ class LocalePlugin(Plugin):
79
90
  return found_languages
80
91
 
81
92
  @export(record=UnixKeyboardRecord)
82
- def keyboard(self):
93
+ def keyboard(self) -> Iterator[UnixKeyboardRecord]:
83
94
  """Get the keyboard layout(s) of the system."""
84
95
 
85
96
  paths = ["/etc/default/keyboard", "/etc/vconsole.conf"] + list(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.19.dev54
3
+ Version: 3.19.dev55
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
@@ -197,7 +197,7 @@ dissect/target/plugins/os/unix/datetime.py,sha256=gKfBdPyUirt3qmVYfOJ1oZXRPn8wRz
197
197
  dissect/target/plugins/os/unix/etc.py,sha256=HoPEC1hxqurSnAXQAK-jf_HxdBIDe-1z_qSw_n-ViI4,258
198
198
  dissect/target/plugins/os/unix/generic.py,sha256=6_MJrV1LbIxNQJwAZR0HEQljoxwF5BPQC1SfCTcaSHg,2127
199
199
  dissect/target/plugins/os/unix/history.py,sha256=rvRlcHw3wEtgdyfjX-RBLQUQAd0uHzfZmfW6FUb6s5U,6435
200
- dissect/target/plugins/os/unix/locale.py,sha256=V3R7mEyrH3f-h7SGAucByaYYDA2SIil9Qb-s3dPmDEA,3961
200
+ dissect/target/plugins/os/unix/locale.py,sha256=XOcKBwfK3YJ266eBFKNc1xaZgY8QEQGJOS8PJRJt4ME,4292
201
201
  dissect/target/plugins/os/unix/packagemanager.py,sha256=Wm2AAJOD_B3FAcZNXgWtSm_YwbvrHBYOP8bPmOXNjG4,2427
202
202
  dissect/target/plugins/os/unix/shadow.py,sha256=W6W6rMru7IVnuBc6sl5wsRWTOrJdS1s7_2_q7QRf7Is,4148
203
203
  dissect/target/plugins/os/unix/bsd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -219,7 +219,7 @@ dissect/target/plugins/os/unix/esxi/_os.py,sha256=s6pAgUyfHh3QcY6sgvk5uVMmLvqK1t
219
219
  dissect/target/plugins/os/unix/etc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
220
  dissect/target/plugins/os/unix/etc/etc.py,sha256=px_UwtPuk_scD-3nKJQZ0ao5lus9-BrSU4lPZWelYzI,2541
221
221
  dissect/target/plugins/os/unix/linux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
- dissect/target/plugins/os/unix/linux/_os.py,sha256=DF4UV-s6XupV8bWck2Mkm4seFRb0oKjzeM-PtU8OV0k,2940
222
+ dissect/target/plugins/os/unix/linux/_os.py,sha256=ktEx_VhRB9vvZePo3-np2_L3yzUPq1Cc_D_1lnPq4-4,3023
223
223
  dissect/target/plugins/os/unix/linux/cmdline.py,sha256=AyMfndt3UsmJtoOyZYC8nWq2GZg9oPvn8SiI3M4NxnE,1622
224
224
  dissect/target/plugins/os/unix/linux/environ.py,sha256=UOQD7Xmu754u2oAh3L5g5snuz-gv4jbWbVy46qszYjo,1881
225
225
  dissect/target/plugins/os/unix/linux/iptables.py,sha256=qTzY5PHHXA33WnPYb5NESgoSwI7ECZ8YPoEe_Fmln-8,6045
@@ -243,7 +243,7 @@ dissect/target/plugins/os/unix/linux/fortios/_os.py,sha256=Cyw6KyGNc-uZn2WDlD-7G
243
243
  dissect/target/plugins/os/unix/linux/fortios/generic.py,sha256=tT4-lE0Z_DeDIN3zHrQbE8JB3cRJop1_TiEst-Au0bs,1230
244
244
  dissect/target/plugins/os/unix/linux/fortios/locale.py,sha256=VDdk60sqe2JTfftssO05C667-_BpI3kcqKOTVzO3ueU,5209
245
245
  dissect/target/plugins/os/unix/linux/redhat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
- dissect/target/plugins/os/unix/linux/redhat/_os.py,sha256=l_SygO1WMBTvaLvAvhe08yPHLBpUZ9wizW28a9_JhJE,578
246
+ dissect/target/plugins/os/unix/linux/redhat/_os.py,sha256=fHXBFJ3ZJDs4mbyI1oubCgkD5liGPZuJzclz-fUGXYc,584
247
247
  dissect/target/plugins/os/unix/linux/redhat/yum.py,sha256=kEvB-C2CNoqxSbgGRZiuo6CMPBo_hMWy2KQIE4SNkdQ,2134
248
248
  dissect/target/plugins/os/unix/linux/suse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
249
  dissect/target/plugins/os/unix/linux/suse/_os.py,sha256=eaqgnkbunBJ2Hf_GE96THjfT3ybVIZvtWId-dx3JMV4,575
@@ -356,10 +356,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
356
356
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
357
357
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
358
358
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
359
- dissect.target-3.19.dev54.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
360
- dissect.target-3.19.dev54.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
361
- dissect.target-3.19.dev54.dist-info/METADATA,sha256=-r6p7_zLix0JuJSqAsy6kbYzI0Cqn2w67fYb_DRYGAQ,12897
362
- dissect.target-3.19.dev54.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
363
- dissect.target-3.19.dev54.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
364
- dissect.target-3.19.dev54.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
365
- dissect.target-3.19.dev54.dist-info/RECORD,,
359
+ dissect.target-3.19.dev55.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
360
+ dissect.target-3.19.dev55.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
361
+ dissect.target-3.19.dev55.dist-info/METADATA,sha256=kEnsyXUwLaOo42y56XYs1I9yAA2gKy6KY8DIKqONfU4,12897
362
+ dissect.target-3.19.dev55.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
363
+ dissect.target-3.19.dev55.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
364
+ dissect.target-3.19.dev55.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
365
+ dissect.target-3.19.dev55.dist-info/RECORD,,