daktari 0.0.234__py3-none-any.whl → 0.0.236__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.
Potentially problematic release.
This version of daktari might be problematic. Click here for more details.
- daktari/__init__.py +1 -1
- daktari/checks/files.py +9 -2
- daktari/file_utils.py +2 -2
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/METADATA +26 -29
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/RECORD +9 -9
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/WHEEL +1 -1
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/entry_points.txt +0 -1
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/LICENSE.txt +0 -0
- {daktari-0.0.234.dist-info → daktari-0.0.236.dist-info}/top_level.txt +0 -0
daktari/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.0.
|
|
1
|
+
__version__ = "0.0.236"
|
daktari/checks/files.py
CHANGED
|
@@ -47,17 +47,24 @@ class DirExists(DirsExist):
|
|
|
47
47
|
class FilesOwnedByUser(Check):
|
|
48
48
|
name = "files.ownedByUser"
|
|
49
49
|
|
|
50
|
-
def __init__(
|
|
50
|
+
def __init__(
|
|
51
|
+
self,
|
|
52
|
+
file_paths: List[str],
|
|
53
|
+
expected_owner: str = "root",
|
|
54
|
+
pass_fail_message: str = "",
|
|
55
|
+
follow_symlinks: bool = False,
|
|
56
|
+
):
|
|
51
57
|
self.file_paths = file_paths
|
|
52
58
|
self.expected_owner = expected_owner
|
|
53
59
|
file_paths_str = ", ".join(file_paths)
|
|
54
60
|
self.pass_fail_message = pass_fail_message or f"{file_paths_str} are <not/> owned by {expected_owner}"
|
|
61
|
+
self.follow_symlinks = follow_symlinks
|
|
55
62
|
|
|
56
63
|
def check(self) -> CheckResult:
|
|
57
64
|
for file_path in self.file_paths:
|
|
58
65
|
expanded_file_path = expanduser(file_path)
|
|
59
66
|
if file_exists(expanded_file_path):
|
|
60
|
-
if get_file_owner(expanded_file_path) != self.expected_owner:
|
|
67
|
+
if get_file_owner(expanded_file_path, self.follow_symlinks) != self.expected_owner:
|
|
61
68
|
return self.verify(False, self.pass_fail_message)
|
|
62
69
|
else:
|
|
63
70
|
return self.failed(f"{expanded_file_path} is not present")
|
daktari/file_utils.py
CHANGED
|
@@ -47,6 +47,6 @@ def dir_exists(path: str) -> bool:
|
|
|
47
47
|
return testing_dir.is_dir()
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
def get_file_owner(file_path: str) -> str:
|
|
51
|
-
file_stat = os.stat(file_path)
|
|
50
|
+
def get_file_owner(file_path: str, follow_symlinks: bool = False) -> str:
|
|
51
|
+
file_stat = os.stat(file_path, follow_symlinks=follow_symlinks)
|
|
52
52
|
return getpwuid(file_stat.st_uid).pw_name
|
|
@@ -1,41 +1,40 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: daktari
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.236
|
|
4
4
|
Summary: Assist in setting up and maintaining developer environments
|
|
5
5
|
Home-page: https://github.com/sonocent/daktari
|
|
6
6
|
Author: Matt Russell
|
|
7
7
|
Author-email: matthew.russell@sonocent.com
|
|
8
8
|
License: MIT
|
|
9
|
-
Platform: UNKNOWN
|
|
10
9
|
Classifier: License :: OSI Approved :: MIT License
|
|
11
10
|
Classifier: Programming Language :: Python
|
|
12
11
|
Requires-Python: >=3.9
|
|
13
12
|
Description-Content-Type: text/markdown
|
|
14
13
|
License-File: LICENSE.txt
|
|
15
|
-
Requires-Dist: PyYAML
|
|
16
|
-
Requires-Dist: ansicolors
|
|
17
|
-
Requires-Dist: distro
|
|
18
|
-
Requires-Dist: dpath
|
|
19
|
-
Requires-Dist: importlib-resources
|
|
20
|
-
Requires-Dist: packaging
|
|
21
|
-
Requires-Dist: pyOpenSSL
|
|
22
|
-
Requires-Dist: pyclip
|
|
23
|
-
Requires-Dist: pyfiglet
|
|
24
|
-
Requires-Dist: python-hosts
|
|
25
|
-
Requires-Dist: requests-unixsocket
|
|
26
|
-
Requires-Dist: requests
|
|
27
|
-
Requires-Dist: responses
|
|
28
|
-
Requires-Dist: semver
|
|
29
|
-
Requires-Dist: setuptools
|
|
30
|
-
Requires-Dist: tabulate
|
|
31
|
-
Requires-Dist: types-PyYAML
|
|
32
|
-
Requires-Dist: types-pyOpenSSL
|
|
33
|
-
Requires-Dist: types-tabulate
|
|
34
|
-
Requires-Dist: urllib3
|
|
35
|
-
Requires-Dist: dataclasses
|
|
36
|
-
Requires-Dist: types-dataclasses
|
|
37
|
-
Requires-Dist: pyobjc-core
|
|
38
|
-
Requires-Dist: pyobjc-framework-Cocoa
|
|
14
|
+
Requires-Dist: PyYAML ==5.3.1
|
|
15
|
+
Requires-Dist: ansicolors ==1.1.8
|
|
16
|
+
Requires-Dist: distro ==1.9.0
|
|
17
|
+
Requires-Dist: dpath ==2.2.0
|
|
18
|
+
Requires-Dist: importlib-resources ==6.5.2
|
|
19
|
+
Requires-Dist: packaging ==20.9
|
|
20
|
+
Requires-Dist: pyOpenSSL ==25.0.0
|
|
21
|
+
Requires-Dist: pyclip ==0.7.0
|
|
22
|
+
Requires-Dist: pyfiglet ==0.8.post1
|
|
23
|
+
Requires-Dist: python-hosts ==1.0.7
|
|
24
|
+
Requires-Dist: requests-unixsocket ==0.3.0
|
|
25
|
+
Requires-Dist: requests ==2.32.3
|
|
26
|
+
Requires-Dist: responses ==0.25.6
|
|
27
|
+
Requires-Dist: semver ==3.0.2
|
|
28
|
+
Requires-Dist: setuptools ==70.3.0
|
|
29
|
+
Requires-Dist: tabulate ==0.9.0
|
|
30
|
+
Requires-Dist: types-PyYAML ==6.0.12.20241230
|
|
31
|
+
Requires-Dist: types-pyOpenSSL ==24.1.0.20240722
|
|
32
|
+
Requires-Dist: types-tabulate ==0.9.0.20241207
|
|
33
|
+
Requires-Dist: urllib3 <1.27
|
|
34
|
+
Requires-Dist: dataclasses ==0.8 ; python_version < "3.7"
|
|
35
|
+
Requires-Dist: types-dataclasses ==0.1.5 ; python_version < "3.7"
|
|
36
|
+
Requires-Dist: pyobjc-core ==10.3.2 ; sys_platform == "darwin"
|
|
37
|
+
Requires-Dist: pyobjc-framework-Cocoa ==11.0 ; sys_platform == "darwin"
|
|
39
38
|
|
|
40
39
|
**Daktari** is a tool to help the initial setup and ongoing maintenance of developer environments. It runs a series of checks (for example, that required software is installed) and provides suggestions on how to fix the issue if the check fails.
|
|
41
40
|
|
|
@@ -46,7 +45,7 @@ In the root of the project repository, create a `.daktari.py` configuration file
|
|
|
46
45
|
```python
|
|
47
46
|
from daktari.checks.git import *
|
|
48
47
|
|
|
49
|
-
version = "0.0.
|
|
48
|
+
version = "0.0.236"
|
|
50
49
|
title = "My Project"
|
|
51
50
|
|
|
52
51
|
checks = [
|
|
@@ -112,5 +111,3 @@ python setup.py sdist bdist_wheel
|
|
|
112
111
|
twine check dist/*
|
|
113
112
|
twine upload dist/*
|
|
114
113
|
```
|
|
115
|
-
|
|
116
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
daktari/__init__.py,sha256=
|
|
1
|
+
daktari/__init__.py,sha256=EwwcoNjGqnpfpgiI_Pb47D-v2WWzhkSCWlkTywCIhCM,24
|
|
2
2
|
daktari/__main__.py,sha256=iYwgtZZE2HD9Eh9Io6OliGQwCNZJSde_66jI6kF8xJU,1463
|
|
3
3
|
daktari/asdf.py,sha256=fALVL6UTz1AYxuabw9MZeAES7J_CvImutUDD1Y2yWwM,509
|
|
4
4
|
daktari/check.py,sha256=WzIiCrrdH7gCbElNwYbYkjhpmaOs_nUWfvkTBkfZlgs,4133
|
|
@@ -8,7 +8,7 @@ daktari/check_utils.py,sha256=rrmYWdekusXT4A2Tecbry_eV9DNt7bN9L5R0IJSPm5k,1027
|
|
|
8
8
|
daktari/collection_utils.py,sha256=JOCcaSkXFPbj2ROszTS-FGv1s35HgHv0MCWgaHio4XE,165
|
|
9
9
|
daktari/command_utils.py,sha256=3s3A3urin40eK40q9bzVnWGsSuU27FZbRkoDotlVKFk,2355
|
|
10
10
|
daktari/config.py,sha256=75l_jhq7tcCIdl78RMcUlUu1fiG8cqKtwC3yV_H5FVE,6719
|
|
11
|
-
daktari/file_utils.py,sha256=
|
|
11
|
+
daktari/file_utils.py,sha256=R2WA7XCtSx68cjdlJtBd6iIr1MEmR3fQDVTgSNvoBx4,1251
|
|
12
12
|
daktari/options.py,sha256=DTTCqn3BdfncWkkAFyag239fxgyxIo3IkM0R9bZhXgQ,1440
|
|
13
13
|
daktari/os.py,sha256=usoya1LQThE68aXUfbgq67hJlHmtbEZtXpi7oRfnXXY,767
|
|
14
14
|
daktari/resource_utils.py,sha256=LibGDZYOni6iVQq6OjF0cvFZrP5QmAmHoNKe4G_3BRc,331
|
|
@@ -31,7 +31,7 @@ daktari/checks/certs.py,sha256=_Q_1tNEwDoO-q-vPx2wOmGYqN-s4osK4gSRpKU5TFbU,1262
|
|
|
31
31
|
daktari/checks/conan.py,sha256=_IWjb5wkbxh-dR6DnEaMpmgzIOkuLWnfMos8sRDmLek,4061
|
|
32
32
|
daktari/checks/direnv.py,sha256=4J2GjbCX-2r7vxuRrNayGa2aq0WcNO07VFtgUvYU0Rc,2271
|
|
33
33
|
daktari/checks/docker.py,sha256=8bmasFOvcCdVn95JHuI4uLqZoT43A06lNscFUfbEKjM,1560
|
|
34
|
-
daktari/checks/files.py,sha256=
|
|
34
|
+
daktari/checks/files.py,sha256=Rth-b1XuZw-AjG3Uwg1ZTc6ItBhQ-U6ZP6VzrOzdRhU,2386
|
|
35
35
|
daktari/checks/flutter.py,sha256=1TI19pIiLVrAuJvoPMXzgX1yOVq6Q5K0TwHNSAUdR_g,1536
|
|
36
36
|
daktari/checks/git.py,sha256=yII22HkvhjGM4bpr3wiLvPxi1pSBPiQcxdTyjqPXji4,6508
|
|
37
37
|
daktari/checks/google.py,sha256=pVbMVWe_mcZ5v-Y6COMwjpMIRopSqzVvgwAQVA4x_Tc,4643
|
|
@@ -56,9 +56,9 @@ daktari/checks/yarn.py,sha256=T8b_oOoZ4l96delmPgPfgtaTkiUS129hoWlGIBcU7Io,5534
|
|
|
56
56
|
daktari/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
57
|
daktari/resources/daktari-local-template.yaml,sha256=ik7KzMcG1r90nxDOk7t5G7P-BSxQIl2PocGUVe14c44,503
|
|
58
58
|
daktari/resources/mock_cert.pem,sha256=AIc9dZOVIuxm7KFLunP5WSA1-LDWLOwpfu48B9xQ_Wg,82
|
|
59
|
-
daktari-0.0.
|
|
60
|
-
daktari-0.0.
|
|
61
|
-
daktari-0.0.
|
|
62
|
-
daktari-0.0.
|
|
63
|
-
daktari-0.0.
|
|
64
|
-
daktari-0.0.
|
|
59
|
+
daktari-0.0.236.dist-info/LICENSE.txt,sha256=sMo18UdnQ7rY1SYg9gmop08ubzEQOGO1URYXu1Hxdx0,1051
|
|
60
|
+
daktari-0.0.236.dist-info/METADATA,sha256=KhGs6RRDtVfnH2lL-y9PSG-8k8fvF98s-dThiREMSlQ,3774
|
|
61
|
+
daktari-0.0.236.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
62
|
+
daktari-0.0.236.dist-info/entry_points.txt,sha256=mfQXkwKyloAzf7sv78icBo1PtRwf9hCP_816F6REf-I,50
|
|
63
|
+
daktari-0.0.236.dist-info/top_level.txt,sha256=LW6kawKAAyxUbGqpAbdedKRUyVy2DBzEZOalp0qDdF8,8
|
|
64
|
+
daktari-0.0.236.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|