|
@@ -116,6 +116,46 @@ find "$VENDOR_DIR" -type d -name "__pycache__" -exec rm -rf {} + 2> /dev/null ||
|
|
|
echo "🔧 Normalisiere Shebangs der Konsolenskripte..."
|
|
echo "🔧 Normalisiere Shebangs der Konsolenskripte..."
|
|
|
find "$VENDOR_DIR" -type f -path "*/bin/*" -exec sed -i '1s|^#!.*|#!/usr/bin/env python3|' {} + 2> /dev/null || true
|
|
find "$VENDOR_DIR" -type f -path "*/bin/*" -exec sed -i '1s|^#!.*|#!/usr/bin/env python3|' {} + 2> /dev/null || true
|
|
|
|
|
|
|
|
|
|
+# …und danach die RECORDs wieder mit dem Baum in Einklang bringen. Wer den Hash
|
|
|
|
|
+# nicht anpasst, liefert fünf Dateien aus, deren Prüfsumme nicht mehr stimmt —
|
|
|
|
|
+# das fällt erst beim Installer auf, nicht hier. Rekursiv über alle RECORDs, weil
|
|
|
|
|
+# das Aufräumen von __pycache__ oben ebenfalls Einträge entfernt hat.
|
|
|
|
|
+echo "🔧 Aktualisiere RECORD-Prüfsummen..."
|
|
|
|
|
+python3 - "$VENDOR_DIR" <<'PYTHON_RECORD'
|
|
|
|
|
+import base64
|
|
|
|
|
+import csv
|
|
|
|
|
+import hashlib
|
|
|
|
|
+import sys
|
|
|
|
|
+from pathlib import Path
|
|
|
|
|
+
|
|
|
|
|
+vendor = Path(sys.argv[1])
|
|
|
|
|
+fixed = 0
|
|
|
|
|
+for record in vendor.rglob("RECORD"):
|
|
|
|
|
+ base = record.parent.parent
|
|
|
|
|
+ rows = list(csv.reader(record.read_text(encoding="utf-8").splitlines()))
|
|
|
|
|
+ changed = False
|
|
|
|
|
+ for row in rows:
|
|
|
|
|
+ if len(row) < 3 or not row[0] or "=" not in row[1]:
|
|
|
|
|
+ continue
|
|
|
|
|
+ target = base / row[0]
|
|
|
|
|
+ if not target.is_file():
|
|
|
|
|
+ continue
|
|
|
|
|
+ digest = base64.urlsafe_b64encode(
|
|
|
|
|
+ hashlib.sha256(target.read_bytes()).digest()
|
|
|
|
|
+ ).rstrip(b"=").decode()
|
|
|
|
|
+ size = str(target.stat().st_size)
|
|
|
|
|
+ if row[1] != f"sha256={digest}" or row[2] != size:
|
|
|
|
|
+ row[1], row[2] = f"sha256={digest}", size
|
|
|
|
|
+ changed = True
|
|
|
|
|
+ if changed:
|
|
|
|
|
+ out = []
|
|
|
|
|
+ for row in rows:
|
|
|
|
|
+ out.append(",".join(row))
|
|
|
|
|
+ record.write_text("\n".join(out) + "\n", encoding="utf-8")
|
|
|
|
|
+ fixed += 1
|
|
|
|
|
+print(f" {fixed} RECORD(s) angepasst")
|
|
|
|
|
+PYTHON_RECORD
|
|
|
|
|
+
|
|
|
echo "🔍 Verifiziere Import für die aktuelle Plattform..."
|
|
echo "🔍 Verifiziere Import für die aktuelle Plattform..."
|
|
|
if python3 -c "
|
|
if python3 -c "
|
|
|
import sys
|
|
import sys
|