chore(home): mirror from kalinamall (4507ee0) with papatramp URLs

This commit is contained in:
2026-07-14 20:53:40 +10:00
commit fb0d4597b5
29 changed files with 2552 additions and 0 deletions
+132
View File
@@ -0,0 +1,132 @@
#Requires -Version 5.1
<#
.SYNOPSIS
Стандартные git remote: home (papatramp), kalinamall, github (PTah).
.EXAMPLE
cd C:\Users\papat\Projects\MyRepo
& "$HOME\CursorRules\scripts\Set-GitRemotes.ps1"
#>
[CmdletBinding()]
param(
[string]$Owner = 'PapaTramp',
[string]$GithubOrg = 'PTah',
[string]$Repo = '',
[switch]$SkipKalinamall,
[switch]$WhatIf
)
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
function Write-Step([string]$Message) { Write-Host "[*] $Message" -ForegroundColor Cyan }
function Write-Ok([string]$Message) { Write-Host "[+] $Message" -ForegroundColor Green }
function Test-GitRepo {
git rev-parse --is-inside-work-tree 2>$null | Out-Null
if ($LASTEXITCODE -ne 0) {
throw 'Run inside a git repository or pass -Repo.'
}
}
function Get-RepoNameFromRemoteUrl {
param([string]$Url)
if ($Url -match '/([^/]+?)(?:\.git)?/?$') {
return $Matches[1]
}
return $null
}
function Get-RepoName {
param([string]$Name)
if ($Name) { return $Name }
foreach ($remote in @('kalinamall', 'home', 'github', 'origin')) {
$url = git remote get-url $remote 2>$null
if ($url) {
$fromUrl = Get-RepoNameFromRemoteUrl -Url $url.Trim()
if ($fromUrl) { return $fromUrl }
}
}
return (Split-Path -Leaf (git rev-parse --show-toplevel))
}
function Get-OriginRemoteTarget {
$url = (git remote get-url origin 2>$null)
if (-not $url) { return $null }
$lower = $url.ToLower()
if ($lower -match 'kalinamall') { return 'kalinamall' }
if ($lower -match 'papatramp') { return 'home' }
if ($lower -match 'github\.com') { return 'github' }
return $null
}
function Set-Remote {
param(
[string]$Name,
[string]$Url
)
$existing = @(git remote 2>$null)
$has = $existing -contains $Name
if ($WhatIf) {
Write-Step "WhatIf: remote $Name -> $Url"
return
}
if ($has) {
$current = (git remote get-url $Name 2>$null).Trim()
if ($current -eq $Url) {
Write-Ok "remote $Name OK"
return
}
git remote set-url $Name $Url
Write-Ok "remote $Name updated -> $Url"
return
}
if ($existing -contains 'origin') {
$originTarget = Get-OriginRemoteTarget
if ($originTarget -eq $Name) {
git remote rename origin $Name
git remote set-url $Name $Url
Write-Ok "remote origin renamed to $Name -> $Url"
return
}
}
$legacy = @{
home = @('gitea', 'papatramp', 'origin-home')
github = @()
kalinamall = @('gitea-kalinamall', 'kalina')
}
foreach ($old in $legacy[$Name]) {
if ($existing -contains $old) {
git remote rename $old $Name
git remote set-url $Name $Url
Write-Ok "remote $old renamed to $Name -> $Url"
return
}
}
git remote add $Name $Url
Write-Ok "remote $Name added -> $Url"
}
Test-GitRepo
$repoName = Get-RepoName -Name $Repo
$homeUrl = "ssh://git@git.papatramp.ru:2222/${Owner}/${repoName}.git"
$kalinamallUrl = "ssh://git@git.kalinamall.ru:2222/${Owner}/${repoName}.git"
$githubUrl = "git@github.com:${GithubOrg}/${repoName}.git"
Write-Step "Repo: $repoName"
Set-Remote -Name 'home' -Url $homeUrl
Set-Remote -Name 'kalinamall' -Url $kalinamallUrl
Set-Remote -Name 'github' -Url $githubUrl
Write-Host ''
Write-Host 'Remotes:' -ForegroundColor Magenta
git remote -v