Files
pwap/web/public/docs/rebrand_project.py
T
pezkuwichain 1295c36241 Rebrand: polkadot → pezkuwi build fixes
- 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
2026-01-07 02:32:54 +03:00

215 lines
10 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 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()