Files
pezkuwi-sdk/fix_errors.py
T

96 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
import re
# Taranacak Ana Klasörler (Buradaki tüm .rs dosyaları taranacak)
SCAN_DIRS = [
"bizinikiwi/pezframe/identity",
"bizinikiwi/pezframe/revive"
]
# Değişim Kuralları (Regex -> Yeni String)
# Regex'ler boşluk toleranslıdır: [u8; 15] veya [u8;15] yakalar.
REPLACEMENTS = [
(r"\[\s*u8\s*;\s*15\s*\]", "[u8; 18]"),
(r"\[\s*u8\s*;\s*17\s*\]", "[u8; 20]")
]
# Ekstra Tekil Dosya Düzeltmeleri (Import hataları vb.)
SINGLE_FILE_FIXES = [
(
"pezcumulus/teyrchains/pezpallets/ping/src/lib.rs",
r"pezcumulus_pezpallet_xcm",
"pezcumulus_pezpallet_xcm"
)
]
def apply_fixes():
root_dir = os.getcwd()
print("--- Geniş Kapsamlı Tarama ve Düzeltme Başlıyor ---")
total_fixed = 0
# 1. Klasör Taraması (Array Boyutları İçin)
for scan_dir in SCAN_DIRS:
abs_scan_dir = os.path.join(root_dir, scan_dir)
if not os.path.exists(abs_scan_dir):
print(f"[UYARI] Klasör bulunamadı: {scan_dir}")
continue
print(f"Taranıyor: {scan_dir} ...")
for dirpath, _, filenames in os.walk(abs_scan_dir):
for filename in filenames:
if not filename.endswith(".rs"):
continue
filepath = os.path.join(dirpath, filename)
try:
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
original_content = content
modified = False
for pattern, replacement in REPLACEMENTS:
# Regex ile değiştir (subn kaç tane değiştiğini sayar)
new_content, count = re.subn(pattern, replacement, content)
if count > 0:
content = new_content
modified = True
print(f" -> [DÜZELTİLDİ] {filename}: {replacement} yapıldı ({count} adet)")
if modified:
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
total_fixed += 1
except Exception as e:
print(f" [HATA] {filename} okunurken hata: {e}")
# 2. Tekil Dosya Düzeltmeleri
print("\nTekil Dosyalar Kontrol Ediliyor...")
for rel_path, pattern, replacement in SINGLE_FILE_FIXES:
filepath = os.path.join(root_dir, rel_path)
if os.path.exists(filepath):
try:
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
new_content, count = re.subn(pattern, replacement, content)
if count > 0:
with open(filepath, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f" -> [DÜZELTİLDİ] {rel_path} ({count} adet)")
total_fixed += 1
elif replacement in content:
print(f" -> [ATLANDI] {rel_path} (Zaten düzgün)")
except Exception as e:
print(f" [HATA] {rel_path}: {e}")
else:
print(f" [UYARI] Dosya yok: {rel_path}")
print(f"\n--- İşlem Tamamlandı. Toplam {total_fixed} dosya güncellendi. ---")
if __name__ == "__main__":
apply_fixes()