diff --git a/install.ps1 b/install.ps1 index 47bf2ad..c501196 100644 --- a/install.ps1 +++ b/install.ps1 @@ -3,18 +3,14 @@ .SYNOPSIS Первая загрузка Rules и запуск init-cursor в текущем проекте. -.DESCRIPTION - Репозиторий приватный — irm .../raw/.../install.ps1 без логина вернёт 404. - Запускайте этот файл после clone или однострочник из README. - .EXAMPLE git clone --depth 1 ssh://git@git.kalinamall.ru:2222/PapaTramp/Rules.git $HOME\CursorRules & $HOME\CursorRules\install.ps1 #> [CmdletBinding()] param( - [Parameter(ValueFromRemainingArguments = $true)] - [object[]]$InitCursorArgs + [switch]$SkipGitRemotes, + [switch]$Update ) Set-StrictMode -Version Latest @@ -24,9 +20,17 @@ $rulesDest = Join-Path $HOME 'CursorRules' $httpsUrl = 'https://git.kalinamall.ru/PapaTramp/Rules.git' $sshUrl = 'ssh://git@git.kalinamall.ru:2222/PapaTramp/Rules.git' -if (-not (Test-Path (Join-Path $rulesDest '.git'))) { +function Ensure-RulesClone { + if (Test-Path (Join-Path $rulesDest '.git')) { + Write-Host '[*] Updating CursorRules...' -ForegroundColor Cyan + git -C $rulesDest pull --ff-only + return + } + if (Test-Path -LiteralPath $rulesDest) { - throw "Path exists and is not a git repo: $rulesDest" + $backup = "${rulesDest}.bak-$(Get-Date -Format 'yyyyMMdd-HHmmss')" + Write-Host "[!] Replacing non-git folder: $rulesDest -> $backup" -ForegroundColor Yellow + Move-Item -LiteralPath $rulesDest -Destination $backup } Write-Host '[*] Cloning Rules via SSH...' -ForegroundColor Cyan @@ -41,5 +45,16 @@ if (-not (Test-Path (Join-Path $rulesDest '.git'))) { Write-Host "[+] Cloned to $rulesDest" -ForegroundColor Green } +Ensure-RulesClone + . (Join-Path $rulesDest 'init-cursor.ps1') -init-cursor @InitCursorArgs + +if ($Update) { + init-cursor -Update -SkipGitRemotes:$SkipGitRemotes +} +elseif ($SkipGitRemotes) { + init-cursor -SkipGitRemotes +} +else { + init-cursor +}