mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-22 22:57:55 +00:00
1295c36241
- Fixed TypeScript type assertion issues - Updated imports from api-augment/substrate to api-augment/bizinikiwi - Fixed imgConvert.mjs header and imports - Added @ts-expect-error for runtime-converted types - Fixed all @polkadot copyright headers to @pezkuwi
215 lines
10 KiB
Python
215 lines
10 KiB
Python
import os
|
||
import sys
|
||
|
||
# Rebranding haritası
|
||
REBRAND_MAP = [
|
||
("asset-test-utils", "asset-test-pezutils"),
|
||
("chain-spec-guide-runtime", "pez-chain-spec-guide-runtime"),
|
||
("equivocation-detector", "pez-equivocation-detector"),
|
||
("erasure-coding-fuzzer", "pez-erasure-coding-fuzzer"),
|
||
("ethereum-standards", "pez-ethereum-standards"),
|
||
("finality-relay", "pez-finality-relay"),
|
||
("fork-tree", "pez-fork-tree"),
|
||
("generate-bags", "pez-generate-bags"),
|
||
("kitchensink-runtime", "pez-kitchensink-runtime"),
|
||
("messages-relay", "pez-messages-relay"),
|
||
("minimal-template-node", "pez-minimal-template-node"),
|
||
("minimal-template-runtime", "pez-minimal-template-runtime"),
|
||
("node-bench", "pez-node-bench"),
|
||
("node-primitives", "pez-node-primitives"),
|
||
("node-rpc", "pez-node-rpc"),
|
||
("node-runtime-generate-bags", "pez-node-runtime-generate-bags"),
|
||
("node-template-release", "pez-node-template-release"),
|
||
("node-testing", "pez-node-testing"),
|
||
("penpal-emulated-chain", "pez-penpal-emulated-chain"),
|
||
("penpal-runtime", "pez-penpal-runtime"),
|
||
("remote-ext-tests-bags-list", "pez-remote-ext-tests-bags-list"),
|
||
("revive-dev-node", "pez-revive-dev-node"),
|
||
("revive-dev-runtime", "pez-revive-dev-runtime"),
|
||
("slot-range-helper", "pez-slot-range-helper"),
|
||
("solochain-template-node", "pez-solochain-template-node"),
|
||
("solochain-template-runtime", "pez-solochain-template-runtime"),
|
||
("subkey", "pez-subkey"),
|
||
("template-zombienet-tests", "pez-template-zombienet-tests"),
|
||
("test-runtime-constants", "peztest-runtime-constants"),
|
||
("tracing-gum", "pez-tracing-gum"),
|
||
("tracing-gum-proc-macro", "pez-tracing-gum-proc-macro"),
|
||
("bp-header-chain", "bp-header-pez-chain"),
|
||
("bp-runtime", "pezbp-runtime"),
|
||
("bridge-hub-pezkuwichain-emulated-chain", "pezbridge-hub-pezkuwichain-emulated-chain"),
|
||
("bridge-hub-pezkuwichain-integration-tests", "pezbridge-hub-pezkuwichain-integration-tests"),
|
||
("bridge-hub-pezkuwichain-runtime", "pezbridge-hub-pezkuwichain-runtime"),
|
||
("bridge-hub-test-utils", "pezbridge-hub-test-utils"),
|
||
("bridge-hub-zagros-emulated-chain", "pezbridge-hub-zagros-emulated-chain"),
|
||
("bridge-hub-zagros-integration-tests", "pezbridge-hub-zagros-integration-tests"),
|
||
("bridge-hub-zagros-runtime", "pezbridge-hub-zagros-runtime"),
|
||
("bridge-runtime-common", "pezbridge-runtime-common"),
|
||
("mmr-gadget", "pezmmr-gadget"),
|
||
("mmr-rpc", "pezmmr-rpc"),
|
||
("snowbridge-beacon-primitives", "pezsnowbridge-beacon-primitives"),
|
||
("snowbridge-core", "pezsnowbridge-core"),
|
||
("snowbridge-ethereum", "pezsnowbridge-ethereum"),
|
||
("snowbridge-inbound-queue-primitives", "pezsnowbridge-inbound-queue-primitives"),
|
||
("snowbridge-merkle-tree", "pezsnowbridge-merkle-tree"),
|
||
("snowbridge-outbound-queue-primitives", "pezsnowbridge-outbound-queue-primitives"),
|
||
("snowbridge-outbound-queue-runtime-api", "pezsnowbridge-outbound-queue-runtime-api"),
|
||
("snowbridge-outbound-queue-v2-runtime-api", "pezsnowbridge-outbound-queue-v2-runtime-api"),
|
||
("snowbridge-pezpallet-ethereum-client", "snowbridge-pezpallet-ethereum-client"),
|
||
("snowbridge-pezpallet-ethereum-client-fixtures", "snowbridge-pezpallet-ethereum-client-fixtures"),
|
||
("snowbridge-pezpallet-inbound-queue", "snowbridge-pezpallet-inbound-queue"),
|
||
("snowbridge-pezpallet-inbound-queue-fixtures", "snowbridge-pezpallet-inbound-queue-fixtures"),
|
||
("snowbridge-pezpallet-inbound-queue-v2", "snowbridge-pezpallet-inbound-queue-v2"),
|
||
("snowbridge-pezpallet-inbound-queue-v2-fixtures", "snowbridge-pezpallet-inbound-queue-v2-fixtures"),
|
||
("snowbridge-pezpallet-outbound-queue", "snowbridge-pezpallet-outbound-queue"),
|
||
("snowbridge-pezpallet-outbound-queue-v2", "snowbridge-pezpallet-outbound-queue-v2"),
|
||
("snowbridge-pezpallet-system", "snowbridge-pezpallet-system"),
|
||
("snowbridge-pezpallet-system-frontend", "snowbridge-pezpallet-system-frontend"),
|
||
("snowbridge-pezpallet-system-v2", "snowbridge-pezpallet-system-v2"),
|
||
("snowbridge-runtime-common", "pezsnowbridge-runtime-common"),
|
||
("snowbridge-runtime-test-common", "pezsnowbridge-runtime-test-common"),
|
||
("snowbridge-system-runtime-api", "pezsnowbridge-system-runtime-api"),
|
||
("snowbridge-system-v2-runtime-api", "pezsnowbridge-system-v2-runtime-api"),
|
||
("snowbridge-test-utils", "pezsnowbridge-test-utils"),
|
||
("snowbridge-verification-primitives", "pezsnowbridge-verification-primitives"),
|
||
("xcm-docs", "xcm-pez-docs"),
|
||
("xcm-emulator", "xcm-pez-emulator"),
|
||
("xcm-executor-integration-tests", "xcm-pez-executor-integration-tests"),
|
||
("xcm-procedural", "xcm-pez-procedural"),
|
||
("xcm-runtime-apis", "xcm-runtime-pezapis"),
|
||
("xcm-simulator", "xcm-pez-simulator"),
|
||
("xcm-simulator-example", "xcm-pez-simulator-example"),
|
||
("xcm-simulator-fuzzer", "xcm-pez-simulator-fuzzer"),
|
||
]
|
||
|
||
# Hedef dosya uzantıları
|
||
TARGET_EXTENSIONS = ('.rs', '.toml', '.md', '.txt', '.yml', '.yaml', '.json', '.py')
|
||
|
||
# HARİÇ TUTULACAK KLASÖRLER (KESİN LİSTE)
|
||
EXCLUDE_DIRS = {'crate_placeholders', '.git', 'target', 'node_modules', '__pycache__'}
|
||
|
||
def is_path_excluded(path):
|
||
"""Verilen yolun yasaklı bir klasörün içinde olup olmadığını kontrol eder."""
|
||
parts = path.split(os.sep)
|
||
# Eğer path'in herhangi bir parçası EXCLUDE_DIRS içindeyse True döner
|
||
return any(excluded in parts for excluded in EXCLUDE_DIRS)
|
||
|
||
def replace_in_file(filepath):
|
||
# Kendi kendimizi değiştirmeyelim
|
||
if os.path.basename(filepath) == os.path.basename(__file__):
|
||
return
|
||
|
||
try:
|
||
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
||
content = f.read()
|
||
|
||
original_content = content
|
||
|
||
for old_name, new_name in REBRAND_MAP:
|
||
# 1. Normal (tireli)
|
||
content = content.replace(old_name, new_name)
|
||
# 2. Snake case (alt çizgili)
|
||
old_snake = old_name.replace('-', '_')
|
||
new_snake = new_name.replace('-', '_')
|
||
content = content.replace(old_snake, new_snake)
|
||
|
||
if content != original_content:
|
||
with open(filepath, 'w', encoding='utf-8') as f:
|
||
f.write(content)
|
||
print(f" [GÜNCELLENDİ] Dosya içeriği: {filepath}")
|
||
|
||
except Exception as e:
|
||
print(f" [HATA] Dosya okunamadı: {filepath} -> {e}")
|
||
|
||
def rename_directories_and_files(root_dir):
|
||
# topdown=True kullanarak yukarıdan aşağıya iniyoruz, böylece dirs listesini modifiye edebiliriz
|
||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
|
||
|
||
# GÜVENLİK: Yasaklı klasörleri yerinde (in-place) listeden silerek os.walk'un oraya girmesini engelle
|
||
# Bu en güvenli yöntemdir.
|
||
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
|
||
|
||
# Eğer şu anki dizin zaten yasaklı bir yolun altındaysa (üstteki koruma kaçırdıysa) atla
|
||
if is_path_excluded(dirpath):
|
||
continue
|
||
|
||
# 1. Dosya isimlerini değiştir
|
||
for filename in filenames:
|
||
if filename == os.path.basename(__file__):
|
||
continue
|
||
|
||
for old_name, new_name in REBRAND_MAP:
|
||
if old_name in filename:
|
||
old_file_path = os.path.join(dirpath, filename)
|
||
new_filename = filename.replace(old_name, new_name)
|
||
new_file_path = os.path.join(dirpath, new_filename)
|
||
if os.path.exists(old_file_path):
|
||
try:
|
||
os.rename(old_file_path, new_file_path)
|
||
print(f" [RENAME] Dosya: {filename} -> {new_filename}")
|
||
except OSError as e:
|
||
print(f" [HATA] Dosya adlandırılamadı {filename}: {e}")
|
||
|
||
# 2. Klasör isimlerini değiştir
|
||
# Not: dirnames listesi üzerinde iterasyon yapıyoruz ama rename işlemi riskli olabilir
|
||
# O yüzden sadece şu anki seviyedeki klasörleri kontrol ediyoruz
|
||
# Ancak os.walk çalışırken klasör adı değişirse alt dizin taraması sapıtabilir.
|
||
# Bu yüzden klasör yeniden adlandırmayı en sona, ayrı bir "bottom-up" geçişe bırakmak daha iyidir
|
||
# ama basitlik adına burada dikkatli yapıyoruz.
|
||
|
||
# İkinci Geçiş: Sadece Klasör İsimleri (Bottom-Up)
|
||
# Klasör isimlerini değiştirirken path bozulmasın diye en alttan başlıyoruz
|
||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=False):
|
||
if is_path_excluded(dirpath):
|
||
continue
|
||
|
||
for dirname in dirnames:
|
||
if dirname in EXCLUDE_DIRS:
|
||
continue
|
||
|
||
for old_name, new_name in REBRAND_MAP:
|
||
if old_name == dirname:
|
||
old_dir_path = os.path.join(dirpath, dirname)
|
||
new_dir_path = os.path.join(dirpath, new_name)
|
||
if os.path.exists(old_dir_path):
|
||
try:
|
||
os.rename(old_dir_path, new_dir_path)
|
||
print(f" [RENAME] Klasör: {dirname} -> {new_name}")
|
||
except OSError as e:
|
||
print(f" [HATA] Klasör adlandırılamadı {dirname}: {e}")
|
||
|
||
def process_content_updates(root_dir):
|
||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
|
||
# Yasaklı klasörlere girme
|
||
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
|
||
|
||
if is_path_excluded(dirpath):
|
||
continue
|
||
|
||
for filename in filenames:
|
||
if filename.endswith(TARGET_EXTENSIONS) or filename == 'Cargo.lock':
|
||
filepath = os.path.join(dirpath, filename)
|
||
replace_in_file(filepath)
|
||
|
||
def main():
|
||
root_dir = os.getcwd()
|
||
print("==================================================")
|
||
print(f"⚠️ DİKKAT: Çalışma dizini: {root_dir}")
|
||
print(f"⚠️ HARİÇ TUTULANLAR: {EXCLUDE_DIRS}")
|
||
print("==================================================")
|
||
|
||
# Otomatik onay veya soru
|
||
# confirm = input("Emin misin? (evet/hayir): ")
|
||
# if confirm.lower() != "evet": return
|
||
print("İşlem başlatılıyor...")
|
||
|
||
print("\n--- Adım 1: Dosya İçeriklerinin Güncellenmesi ---")
|
||
process_content_updates(root_dir)
|
||
|
||
print("\n--- Adım 2: Klasör ve Dosya İsimlerinin Değiştirilmesi ---")
|
||
rename_directories_and_files(root_dir)
|
||
|
||
print("\n✅ Rebranding işlemi tamamlandı.")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|