security: remove internal operational file docs/reserve_crate_names_v2.py
This commit is contained in:
@@ -1,320 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
crates.io İsim Rezervasyon Script'i (Gelişmiş Versiyon)
|
|
||||||
|
|
||||||
Özellikler:
|
|
||||||
- Kaldığı yerden devam etme (--start-from)
|
|
||||||
- Ayarlanabilir bekleme süresi (--interval)
|
|
||||||
- Workspace izolasyonu (üst dizindeki Cargo.toml ile çakışmaz)
|
|
||||||
- "Already exists" durumunu akıllıca yönetir (bekleme yapmaz)
|
|
||||||
"""
|
|
||||||
|
|
||||||
import subprocess
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import json
|
|
||||||
import time
|
|
||||||
from pathlib import Path
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
WORKSPACE_ROOT = Path(__file__).parent.resolve()
|
|
||||||
PLACEHOLDER_DIR = WORKSPACE_ROOT / "crate_placeholders"
|
|
||||||
|
|
||||||
# Yeni isim listesi
|
|
||||||
NEW_CRATE_NAMES = [
|
|
||||||
"asset-hub-pezkuwichain-emulated-chain",
|
|
||||||
"asset-hub-pezkuwichain-integration-tests",
|
|
||||||
"asset-hub-pezkuwichain-runtime",
|
|
||||||
"asset-hub-zagros-emulated-chain",
|
|
||||||
"asset-hub-zagros-integration-tests",
|
|
||||||
"asset-hub-zagros-runtime",
|
|
||||||
"asset-test-pezutils",
|
|
||||||
"pez-binary-merkle-tree",
|
|
||||||
"pez-chain-spec-guide-runtime",
|
|
||||||
"collectives-zagros-emulated-chain",
|
|
||||||
"collectives-zagros-integration-tests",
|
|
||||||
"collectives-zagros-runtime",
|
|
||||||
"coretime-pezkuwichain-emulated-chain",
|
|
||||||
"coretime-pezkuwichain-integration-tests",
|
|
||||||
"coretime-pezkuwichain-runtime",
|
|
||||||
"coretime-zagros-emulated-chain",
|
|
||||||
"coretime-zagros-integration-tests",
|
|
||||||
"coretime-zagros-runtime",
|
|
||||||
"emulated-integration-tests-common",
|
|
||||||
"pez-equivocation-detector",
|
|
||||||
"pez-erasure-coding-fuzzer",
|
|
||||||
"pez-ethereum-standards",
|
|
||||||
"pez-finality-relay",
|
|
||||||
"pez-fork-tree",
|
|
||||||
"pezframe-election-solution-type-fuzzer",
|
|
||||||
"pezframe-omni-bencher",
|
|
||||||
"pezframe-remote-externalities",
|
|
||||||
"pezframe-storage-access-test-runtime",
|
|
||||||
"pez-generate-bags",
|
|
||||||
"glutton-zagros-runtime",
|
|
||||||
"governance-zagros-integration-tests",
|
|
||||||
"pez-kitchensink-runtime",
|
|
||||||
"pez-messages-relay",
|
|
||||||
"pez-minimal-template-node",
|
|
||||||
"pez-minimal-template-runtime",
|
|
||||||
"pez-node-bench",
|
|
||||||
"pez-node-primitives",
|
|
||||||
"pez-node-rpc",
|
|
||||||
"pez-node-runtime-pez-generate-bags",
|
|
||||||
"pez-node-template-release",
|
|
||||||
"pez-node-testing",
|
|
||||||
"pez-penpal-emulated-chain",
|
|
||||||
"pez-penpal-runtime",
|
|
||||||
"people-pezkuwichain-emulated-chain",
|
|
||||||
"people-pezkuwichain-integration-tests",
|
|
||||||
"people-pezkuwichain-runtime",
|
|
||||||
"people-zagros-emulated-chain",
|
|
||||||
"people-zagros-integration-tests",
|
|
||||||
"people-zagros-runtime",
|
|
||||||
"pezkuwi",
|
|
||||||
"pezkuwichain-emulated-chain",
|
|
||||||
"pezkuwichain-runtime",
|
|
||||||
"pezkuwichain-runtime-constants",
|
|
||||||
"pezkuwichain-system-emulated-network",
|
|
||||||
"pezkuwichain-teyrchain-runtime",
|
|
||||||
"pezkuwichain-zagros-system-emulated-network",
|
|
||||||
"relay-bizinikiwi-client",
|
|
||||||
"relay-pezutils",
|
|
||||||
"pez-remote-ext-tests-bags-list",
|
|
||||||
"pez-revive-dev-node",
|
|
||||||
"pez-revive-dev-runtime",
|
|
||||||
"pez-slot-range-helper",
|
|
||||||
"pez-solochain-template-node",
|
|
||||||
"pez-solochain-template-runtime",
|
|
||||||
"pez-pez_subkey",
|
|
||||||
"pez-template-zombienet-tests",
|
|
||||||
"peztest-runtime-constants",
|
|
||||||
"test-teyrchain-adder",
|
|
||||||
"test-teyrchain-adder-collator",
|
|
||||||
"test-teyrchain-halt",
|
|
||||||
"test-teyrchain-undying",
|
|
||||||
"test-teyrchain-undying-collator",
|
|
||||||
"testnet-teyrchains-constants",
|
|
||||||
"teyrchain-template",
|
|
||||||
"teyrchain-template-node",
|
|
||||||
"teyrchain-template-runtime",
|
|
||||||
"teyrchains-common",
|
|
||||||
"teyrchains-relay",
|
|
||||||
"teyrchains-runtimes-test-utils",
|
|
||||||
"pez-tracing-gum",
|
|
||||||
"pez-pez-tracing-gum-proc-macro",
|
|
||||||
"yet-another-teyrchain-runtime",
|
|
||||||
"zagros-emulated-chain",
|
|
||||||
"zagros-runtime",
|
|
||||||
"zagros-runtime-constants",
|
|
||||||
"zagros-system-emulated-network",
|
|
||||||
"pez-zombienet-backchannel",
|
|
||||||
"pezassets-common",
|
|
||||||
"bp-asset-hub-pezkuwichain",
|
|
||||||
"bp-asset-hub-zagros",
|
|
||||||
"bp-pezbeefy",
|
|
||||||
"bp-bridge-hub-pezcumulus",
|
|
||||||
"bp-bridge-hub-pezkuwichain",
|
|
||||||
"bp-bridge-hub-zagros",
|
|
||||||
"bp-header-pez-chain",
|
|
||||||
"bp-pez-messages",
|
|
||||||
"bp-pezkuwi-bulletin",
|
|
||||||
"bp-pezkuwi-core",
|
|
||||||
"bp-pezkuwichain",
|
|
||||||
"bp-pez-relayers",
|
|
||||||
"pezbp-runtime",
|
|
||||||
"bp-test-pezutils",
|
|
||||||
"bp-teyrchains",
|
|
||||||
"bp-xcm-pezbridge-hub",
|
|
||||||
"bp-xcm-pezbridge-hub-router",
|
|
||||||
"bp-zagros",
|
|
||||||
"pezbridge-hub-common",
|
|
||||||
"pezbridge-hub-pezkuwichain-emulated-chain",
|
|
||||||
"pezbridge-hub-pezkuwichain-integration-tests",
|
|
||||||
"pezbridge-hub-pezkuwichain-runtime",
|
|
||||||
"pezbridge-hub-test-utils",
|
|
||||||
"pezbridge-hub-zagros-emulated-chain",
|
|
||||||
"pezbridge-hub-zagros-integration-tests",
|
|
||||||
"pezbridge-hub-zagros-runtime",
|
|
||||||
"pezbridge-runtime-common",
|
|
||||||
"pezmmr-gadget",
|
|
||||||
"pezmmr-rpc",
|
|
||||||
"pezsnowbridge-beacon-primitives",
|
|
||||||
"pezsnowbridge-core",
|
|
||||||
"pezsnowbridge-ethereum",
|
|
||||||
"pezsnowbridge-inbound-queue-primitives",
|
|
||||||
"pezsnowbridge-merkle-tree",
|
|
||||||
"pezsnowbridge-outbound-queue-primitives",
|
|
||||||
"pezsnowbridge-outbound-queue-runtime-api",
|
|
||||||
"pezsnowbridge-outbound-queue-v2-runtime-api",
|
|
||||||
"pezsnowbridge-pezpallet-ethereum-client",
|
|
||||||
"pezsnowbridge-pezpallet-ethereum-client-fixtures",
|
|
||||||
"pezsnowbridge-pezpallet-inbound-queue",
|
|
||||||
"pezsnowbridge-pezpallet-inbound-queue-fixtures",
|
|
||||||
"pezsnowbridge-pezpallet-inbound-queue-v2",
|
|
||||||
"pezsnowbridge-pezpallet-inbound-queue-v2-fixtures",
|
|
||||||
"pezsnowbridge-pezpallet-outbound-queue",
|
|
||||||
"pezsnowbridge-pezpallet-outbound-queue-v2",
|
|
||||||
"pezsnowbridge-pezpallet-system",
|
|
||||||
"pezsnowbridge-pezpallet-system-frontend",
|
|
||||||
"pezsnowbridge-pezpallet-system-v2",
|
|
||||||
"pezsnowpezbridge-runtime-common",
|
|
||||||
"pezsnowbridge-runtime-test-common",
|
|
||||||
"pezsnowbridge-system-runtime-api",
|
|
||||||
"pezsnowbridge-system-v2-runtime-api",
|
|
||||||
"pezsnowbridge-test-utils",
|
|
||||||
"pezsnowbridge-verification-primitives",
|
|
||||||
"xcm-pez-docs",
|
|
||||||
"xcm-pez-emulator",
|
|
||||||
"xcm-pez-executor-integration-tests",
|
|
||||||
"xcm-pez-procedural",
|
|
||||||
"xcm-runtime-pezapis",
|
|
||||||
"xcm-pez-simulator",
|
|
||||||
"xcm-pez-simulator-example",
|
|
||||||
"xcm-pez-simulator-fuzzer",
|
|
||||||
]
|
|
||||||
|
|
||||||
def check_crate_available(name: str) -> bool:
|
|
||||||
"""crates.io'da isim müsait mi kontrol et"""
|
|
||||||
result = subprocess.run(
|
|
||||||
["cargo", "search", name, "--limit", "1"],
|
|
||||||
capture_output=True, text=True
|
|
||||||
)
|
|
||||||
return f'{name} = "' not in result.stdout
|
|
||||||
|
|
||||||
def create_placeholder(name: str) -> Path:
|
|
||||||
"""Placeholder crate oluştur"""
|
|
||||||
crate_dir = PLACEHOLDER_DIR / name
|
|
||||||
crate_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
# [workspace] ekleyerek parent workspace ile ilişkisini kesiyoruz
|
|
||||||
cargo_toml = f'''[package]
|
|
||||||
name = "{name}"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
description = "PezkuwiChain SDK component - placeholder for name reservation"
|
|
||||||
license = "Apache-2.0"
|
|
||||||
repository = "https://github.com/pezkuwichain/pezkuwi-sdk"
|
|
||||||
homepage = "https://pezkuwichain.io"
|
|
||||||
documentation = "https://docs.pezkuwichain.io/sdk/"
|
|
||||||
authors = ["Kurdistan Tech Institute <info@pezkuwichain.io>"]
|
|
||||||
keywords = ["pezkuwichain", "blockchain", "sdk"]
|
|
||||||
categories = ["cryptography::cryptocurrencies"]
|
|
||||||
|
|
||||||
[workspace]
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
'''
|
|
||||||
(crate_dir / "Cargo.toml").write_text(cargo_toml)
|
|
||||||
|
|
||||||
src_dir = crate_dir / "src"
|
|
||||||
src_dir.mkdir(exist_ok=True)
|
|
||||||
lib_rs = f'''//! {name}
|
|
||||||
//! This crate is part of the PezkuwiChain SDK.
|
|
||||||
//! Full implementation coming soon.
|
|
||||||
#![doc = include_str!("../README.md")]
|
|
||||||
'''
|
|
||||||
(src_dir / "lib.rs").write_text(lib_rs)
|
|
||||||
|
|
||||||
readme = f'''# {name}
|
|
||||||
Part of [PezkuwiChain SDK](https://github.com/pezkuwichain/pezkuwi-sdk).
|
|
||||||
## About
|
|
||||||
This crate is a component of the PezkuwiChain blockchain SDK.
|
|
||||||
'''
|
|
||||||
(crate_dir / "README.md").write_text(readme)
|
|
||||||
return crate_dir
|
|
||||||
|
|
||||||
def publish_placeholder(crate_dir: Path, dry_run: bool = True):
|
|
||||||
"""Placeholder'ı crates.io'ya publish et.
|
|
||||||
Dönüş: (başarılı_mı, bekleme_gerekli_mi)
|
|
||||||
"""
|
|
||||||
args = ["cargo", "publish"]
|
|
||||||
if dry_run:
|
|
||||||
args.append("--dry-run")
|
|
||||||
args.extend(["--manifest-path", str(crate_dir / "Cargo.toml")])
|
|
||||||
|
|
||||||
result = subprocess.run(args, capture_output=True, text=True, cwd=crate_dir)
|
|
||||||
|
|
||||||
if result.returncode == 0:
|
|
||||||
return True, True # Başarılı, bekleme yap
|
|
||||||
|
|
||||||
# "already exists" hatasını kontrol et
|
|
||||||
if "already exists" in result.stderr:
|
|
||||||
return True, False # Zaten var, bekleme yapma
|
|
||||||
|
|
||||||
print(f"\n[HATA] {crate_dir.name} publish edilemedi:\n{result.stderr}")
|
|
||||||
return False, False
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description="crates.io isim rezervasyonu")
|
|
||||||
parser.add_argument("--list", action="store_true", help="İsimleri listele")
|
|
||||||
parser.add_argument("--check", action="store_true", help="crates.io'da müsaitlik kontrol et")
|
|
||||||
parser.add_argument("--create", action="store_true", help="Placeholder crate'leri oluştur")
|
|
||||||
parser.add_argument("--publish", action="store_true", help="crates.io'ya publish et")
|
|
||||||
parser.add_argument("--dry-run", action="store_true", help="Publish dry-run")
|
|
||||||
parser.add_argument("--start-from", type=str, help="İşleme bu crate isminden başla (öncekileri atlar)")
|
|
||||||
parser.add_argument("--interval", type=int, default=360, help="Publish arası bekleme süresi (saniye). Varsayılan: 360")
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if args.list:
|
|
||||||
for name in sorted(NEW_CRATE_NAMES):
|
|
||||||
print(f" {name}")
|
|
||||||
return
|
|
||||||
|
|
||||||
# Create/Publish işlemleri
|
|
||||||
if args.create or args.publish:
|
|
||||||
# Placeholder klasörünü oluştur
|
|
||||||
PLACEHOLDER_DIR.mkdir(exist_ok=True)
|
|
||||||
|
|
||||||
start_processing = False
|
|
||||||
if not args.start_from:
|
|
||||||
start_processing = True
|
|
||||||
|
|
||||||
print(f"Toplam Crate Sayısı: {len(NEW_CRATE_NAMES)}")
|
|
||||||
print(f"Bekleme Süresi: {args.interval} saniye")
|
|
||||||
if args.start_from:
|
|
||||||
print(f"Başlangıç: {args.start_from} (Öncekiler atlanacak)")
|
|
||||||
|
|
||||||
success = 0
|
|
||||||
failed = 0
|
|
||||||
skipped = 0
|
|
||||||
|
|
||||||
for i, name in enumerate(NEW_CRATE_NAMES, 1):
|
|
||||||
# Resume mantığı
|
|
||||||
if not start_processing:
|
|
||||||
if name == args.start_from:
|
|
||||||
start_processing = True
|
|
||||||
else:
|
|
||||||
skipped += 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
print(f"[{i}/{len(NEW_CRATE_NAMES)}] {name}...", end=" ", flush=True)
|
|
||||||
|
|
||||||
# 1. Create
|
|
||||||
crate_dir = create_placeholder(name)
|
|
||||||
|
|
||||||
# 2. Publish (Eğer istenmişse)
|
|
||||||
if args.publish:
|
|
||||||
success_status, needs_wait = publish_placeholder(crate_dir, args.dry_run)
|
|
||||||
|
|
||||||
if success_status:
|
|
||||||
if needs_wait:
|
|
||||||
print("✓ PUBLISHED")
|
|
||||||
success += 1
|
|
||||||
if not args.dry_run:
|
|
||||||
print(f" -> Bekleniyor {args.interval}sn...")
|
|
||||||
time.sleep(args.interval)
|
|
||||||
else:
|
|
||||||
print("✓ ZATEN VAR (Atlandı)")
|
|
||||||
success += 1
|
|
||||||
else:
|
|
||||||
print("✗ FAILED")
|
|
||||||
failed += 1
|
|
||||||
else:
|
|
||||||
print("✓ CREATED")
|
|
||||||
|
|
||||||
print(f"\nSonuç: {success} başarılı, {failed} başarısız, {skipped} atlandı.")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
Reference in New Issue
Block a user