c146bb119a
Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
2.1 KiB
PowerShell
58 lines
2.1 KiB
PowerShell
# Rewrite cross-repo URLs in tracked docs/config for the target Git host.
|
|
# Usage: .\scripts\Rewrite-GitHostUrls.ps1 github|kalinamall|papatramp
|
|
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateSet('github', 'kalinamall', 'papatramp')]
|
|
[string]$Target
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$Root = Split-Path -Parent $PSScriptRoot
|
|
Set-Location $Root
|
|
|
|
switch ($Target) {
|
|
'github' {
|
|
$Base = 'https://github.com/PTah'
|
|
$BlobSuffix = '/blob/main'
|
|
}
|
|
'kalinamall' {
|
|
$Base = 'https://git.kalinamall.ru/PapaTramp'
|
|
$BlobSuffix = '/src/branch/main'
|
|
}
|
|
'papatramp' {
|
|
$Base = 'https://git.papatramp.ru/PTah'
|
|
$BlobSuffix = '/src/branch/main'
|
|
}
|
|
}
|
|
|
|
$BaseHost = $Base -replace '^https://', ''
|
|
|
|
$patterns = @(
|
|
@{ From = 'https://github.com/PTah/([^)/''"\s]+)/blob/main/'; To = "$Base/`$1$BlobSuffix/" }
|
|
@{ From = 'https://git.kalinamall.ru/PapaTramp/([^)/''"\s]+)/src/branch/main/'; To = "$Base/`$1$BlobSuffix/" }
|
|
@{ From = 'https://git.papatramp.ru/PTah/([^)/''"\s]+)/src/branch/main/'; To = "$Base/`$1$BlobSuffix/" }
|
|
@{ From = 'https://github.com/PTah/'; To = "$Base/" }
|
|
@{ From = 'https://git.kalinamall.ru/PapaTramp/'; To = "$Base/" }
|
|
@{ From = 'https://git.papatramp.ru/PTah/'; To = "$Base/" }
|
|
@{ From = 'github.com/PTah/'; To = "$BaseHost/" }
|
|
@{ From = 'git.kalinamall.ru/PapaTramp/'; To = "$BaseHost/" }
|
|
@{ From = 'git.papatramp.ru/PTah/'; To = "$BaseHost/" }
|
|
)
|
|
|
|
$extensions = @('*.md', '*.json', '*.service', '*.example', '*.sh', '*.ps1', '*.yml', '*.yaml')
|
|
$files = git ls-files $extensions 2>$null | Where-Object { $_ -and (Test-Path $_) }
|
|
|
|
foreach ($file in $files) {
|
|
$content = [System.IO.File]::ReadAllText((Join-Path $Root $file))
|
|
$updated = $content
|
|
foreach ($p in $patterns) {
|
|
$updated = [regex]::Replace($updated, $p.From, $p.To)
|
|
}
|
|
if ($updated -ne $content) {
|
|
[System.IO.File]::WriteAllText((Join-Path $Root $file), $updated, [System.Text.UTF8Encoding]::new($false))
|
|
Write-Output "updated: $file"
|
|
}
|
|
}
|
|
|
|
Write-Output "Rewrite-GitHostUrls: target=$Target base=$Base"
|