From e6e8a3212d0f9afce30f007663fd0b19fb7c4886 Mon Sep 17 00:00:00 2001 From: Baipyrus Date: Tue, 27 Aug 2024 12:34:32 +0200 Subject: [PATCH] detecting existing repository in current directory --- install_windows.ps1 | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/install_windows.ps1 b/install_windows.ps1 index 5f8412a..a91a0b0 100644 --- a/install_windows.ps1 +++ b/install_windows.ps1 @@ -4,13 +4,41 @@ $alacrittyConfigDir = "$env:APPDATA\alacritty" $psProfile = "$env:USERPROFILE\Documents\PowerShell\Microsoft.PowerShell_profile.ps1" $repoUrl = "https://github.com/Baipyrus/dotfiles.git" -# Clone dotfiles repository to TMP if not already inside it -if (-not (Test-Path $dotfilesRepo)) +# Function to determine if the current directory is the dotfiles repository +function IsInDotfilesRepo { - Write-Host "Cloning dotfiles repository..." -ForegroundColor Cyan - git clone $repoUrl $dotfilesRepo + param ([string]$currentDir) + + try + { + $isRepo = git -C $currentDir rev-parse --is-inside-work-tree 2>$null + $originUrl = git -C $currentDir remote get-url origin 2>$null + return $isRepo -eq 'true' -and $originUrl -eq $repoUrl + } catch + { + return $false + } +} + +# Check if the script is running inside the dotfiles repository +$currentDir = (Get-Location).Path + +if (IsInDotfilesRepo -currentDir $currentDir) +{ + Write-Host "Already inside the dotfiles repository. Skipping clone step and pulling..." -ForegroundColor Yellow + $dotfilesRepo = $currentDir + git -C $dotfilesRepo pull } else { - Write-Host "Pulling latest changes from dotfiles repository..." -ForegroundColor Cyan - git -C $dotfilesRepo pull + # Clone dotfiles repository to TMP if not already inside it + if (-not (Test-Path $dotfilesRepo)) + { + Write-Host "Cloning dotfiles repository..." -ForegroundColor Cyan + git clone $repoUrl $dotfilesRepo + } else + { + Write-Host "Pulling latest changes from dotfiles repository..." -ForegroundColor Cyan + git -C $dotfilesRepo pull + } +} }