haraka 0.2.29__py3-none-any.whl → 0.2.31__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.
- haraka/post_gen/service/fileOps/purge.py +36 -36
- haraka/utils/manifests/java-springboot.yml +4 -0
- {haraka-0.2.29.dist-info → haraka-0.2.31.dist-info}/METADATA +1 -1
- {haraka-0.2.29.dist-info → haraka-0.2.31.dist-info}/RECORD +6 -6
- {haraka-0.2.29.dist-info → haraka-0.2.31.dist-info}/WHEEL +0 -0
- {haraka-0.2.29.dist-info → haraka-0.2.31.dist-info}/top_level.txt +0 -0
@@ -76,55 +76,55 @@ class ResourcePurger:
|
|
76
76
|
divider("Project tree after purge…")
|
77
77
|
self._f.print_tree(project_dir)
|
78
78
|
|
79
|
-
#
|
79
|
+
# --------------------------------------------------------------------------- #
|
80
|
+
# internals #
|
81
|
+
# --------------------------------------------------------------------------- #
|
80
82
|
def _purge_unrelated(self, root: Path, spec: PathSpec) -> None:
|
81
83
|
"""
|
82
|
-
Walk
|
83
|
-
|
84
|
-
Updated to align with the `test_java_manifest` logic for cleaner organization.
|
84
|
+
Walk *root* recursively and delete every path **not** matched by *spec*.
|
85
|
+
A directory is preserved if **it or any ancestor** is matched.
|
85
86
|
"""
|
87
|
+
all_paths = list(root.rglob("*"))
|
88
|
+
self._log.debug("📋 Scanning %d paths under %s", len(all_paths), root)
|
86
89
|
|
87
|
-
|
90
|
+
keep: list[str] = []
|
91
|
+
delete_files: list[str] = []
|
92
|
+
delete_dirs: list[str] = []
|
88
93
|
|
89
|
-
# 1) Dump every path under root or state what was found
|
90
|
-
all_paths = list(root.rglob("*"))
|
91
|
-
if self._log.evm:
|
92
|
-
self._log.debug(f"📋 All paths under {root} (total {len(all_paths)}):")
|
93
|
-
for p in all_paths:
|
94
|
-
print(f"{p.relative_to(root)}")
|
95
|
-
else:
|
96
|
-
self._log.debug(f"Found {len(all_paths)} paths under {root})")
|
97
|
-
|
98
|
-
matches, non_matches, directories_skipped = [], [], []
|
99
94
|
for path in all_paths:
|
100
|
-
self._log.debug(f"\nScanning path: {path}")
|
101
95
|
rel = path.relative_to(root).as_posix()
|
102
|
-
self._log.debug(f"Relative path for inspection: {rel}")
|
103
96
|
|
104
|
-
# Match file against the PathSpec
|
105
97
|
if spec.match_file(rel):
|
106
|
-
|
107
|
-
matches.append(path) # Collect paths to keep
|
98
|
+
keep.append(rel)
|
108
99
|
continue
|
109
100
|
|
110
|
-
# Non-matching paths: collect and delete
|
111
|
-
self._log.debug(f"❌ DELETE: Path does not match keep patterns: {rel}")
|
112
101
|
if path.is_dir():
|
113
|
-
|
114
|
-
|
102
|
+
if self._dir_has_kept_ancestor(rel, spec):
|
103
|
+
self._log.debug("⏭️ SKIP DIR (kept ancestor): %s", rel)
|
104
|
+
else:
|
105
|
+
self._log.debug("❌ DELETE DIR: %s", rel)
|
106
|
+
delete_dirs.append(rel)
|
115
107
|
else:
|
116
|
-
|
117
|
-
|
118
|
-
self._log.debug(f"Deleted file: {path}")
|
108
|
+
self._log.debug("❌ DELETE FILE: %s", rel)
|
109
|
+
delete_files.append(rel)
|
119
110
|
|
120
|
-
#
|
121
|
-
|
122
|
-
|
123
|
-
for match in matches:
|
124
|
-
self._log.info(f"✅ {match}")
|
111
|
+
# -- perform deletions -------------------------------------------------- #
|
112
|
+
for f in delete_files:
|
113
|
+
self._f.remove_file(root / f)
|
125
114
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
self._log.info(f"❌ {non_match}")
|
115
|
+
# delete directories bottom-up to avoid “directory not empty” errors
|
116
|
+
for d in sorted(delete_dirs, key=lambda p: p.count("/"), reverse=True):
|
117
|
+
(root / d).rmdir()
|
130
118
|
|
119
|
+
# -- summary ------------------------------------------------------------ #
|
120
|
+
self._log.info("✅ kept : %d", len(keep))
|
121
|
+
self._log.info("🗂️ dirs : %d deleted", len(delete_dirs))
|
122
|
+
self._log.info("📄 files : %d deleted", len(delete_files))
|
123
|
+
|
124
|
+
@staticmethod
|
125
|
+
def _dir_has_kept_ancestor(rel: str, spec: PathSpec) -> bool:
|
126
|
+
"""
|
127
|
+
Return True if *rel* **or any of its ancestors** is matched by *spec*.
|
128
|
+
"""
|
129
|
+
parts = rel.split("/")
|
130
|
+
return any(spec.match_file("/".join(parts[: i + 1])) for i in range(len(parts)))
|
@@ -2,12 +2,15 @@ variant: java-springboot
|
|
2
2
|
|
3
3
|
keep:
|
4
4
|
# ── application source ────────────────────────────
|
5
|
+
- src/
|
6
|
+
- src/main/
|
5
7
|
- src/main/java/
|
6
8
|
- src/main/java/**
|
7
9
|
- src/main/resources/
|
8
10
|
- src/main/resources/**
|
9
11
|
|
10
12
|
# ── tests ─────────────────────────────────────────
|
13
|
+
- src/test/
|
11
14
|
- src/test/java/
|
12
15
|
- src/test/java/**
|
13
16
|
|
@@ -18,6 +21,7 @@ keep:
|
|
18
21
|
- README.md
|
19
22
|
|
20
23
|
# ── IDE / run configs ─────────────────────────────
|
24
|
+
- runConfigurations/
|
21
25
|
- runConfigurations/SpringBoot/
|
22
26
|
- runConfigurations/SpringBoot/**
|
23
27
|
|
@@ -17,7 +17,7 @@ haraka/post_gen/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
17
17
|
haraka/post_gen/service/command.py,sha256=yvEzW9rMSXWeQ_2DXuQNtGH6sRuZnK6viMud-amFQXw,2348
|
18
18
|
haraka/post_gen/service/fileOps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
haraka/post_gen/service/fileOps/files.py,sha256=Jm_0bhvVnNqSPGKQ2RnMpx8JLV74M-IXMmwly9fpmVw,3020
|
20
|
-
haraka/post_gen/service/fileOps/purge.py,sha256=
|
20
|
+
haraka/post_gen/service/fileOps/purge.py,sha256=fU-sQ0ThjW9op0e0gfEgmrqodyt50aSw_Xy-qJP1Kjs,4970
|
21
21
|
haraka/post_gen/service/gitOps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
haraka/post_gen/service/gitOps/gitops.py,sha256=clWny1m9qB4yr8asba8JwqBjewlMVsJUmIOCLtAL8RI,4052
|
23
23
|
haraka/utils/__init__.py,sha256=3Cp4u0dyAGcmqes-tIr95KFsNsJx5Ji5Yzkto9546Hs,168
|
@@ -27,9 +27,9 @@ haraka/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
27
27
|
haraka/utils/logging/log_util.py,sha256=UQq2E24q3brvXqcyGCjfSxxHH48JF_BMg54TKdl1SHk,1049
|
28
28
|
haraka/utils/manifests/go-grpc-gateway-buf.yml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
29
|
haraka/utils/manifests/go-grpc-protoc.yml,sha256=OaQlfW_S_OguhW_UcpBVdqdEtUMlg-SrT4bqLhQrY7Y,936
|
30
|
-
haraka/utils/manifests/java-springboot.yml,sha256=
|
30
|
+
haraka/utils/manifests/java-springboot.yml,sha256=DTZoVrIDNVpq2AuuXjL2jAvPggeKWVuKJEKwFb90cz4,989
|
31
31
|
haraka/utils/manifests/python-fastapi.yml,sha256=nhO6S9j_r-S10nM8nuw7PtR247-ePhBXHvaXg74CjWw,922
|
32
|
-
haraka-0.2.
|
33
|
-
haraka-0.2.
|
34
|
-
haraka-0.2.
|
35
|
-
haraka-0.2.
|
32
|
+
haraka-0.2.31.dist-info/METADATA,sha256=zqfs-3D99QSYiPBh9Qea6NkfMxf8VNPSB_o9UJDAB3Q,579
|
33
|
+
haraka-0.2.31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
34
|
+
haraka-0.2.31.dist-info/top_level.txt,sha256=1khpwypLKWoklVd_CgFiwAfcctVSXRoRPc3BI9lyIXo,7
|
35
|
+
haraka-0.2.31.dist-info/RECORD,,
|
File without changes
|
File without changes
|