diff --git a/scripts/cd-repo.ps1 b/scripts/cd-repo.ps1 new file mode 100644 index 00000000..9532bc17 --- /dev/null +++ b/scripts/cd-repo.ps1 @@ -0,0 +1,49 @@ +<# +.SYNOPSIS + Sets the working directory to a repository +.DESCRIPTION + This PowerShell script changes the working directory to a Git repository. +.PARAMETER folderName + Specifies the folder name +.EXAMPLE + PS> ./cd-repo.ps1 rust + 📂C:\Users\Markus\Repos\rust + on branch: ## main ... origin/main +.LINK + https://github.com/fleschutz/PowerShell +.NOTES + Author: Markus Fleschutz | License: CC0 +#> + +param([string]$folderName = "") + +try { + if ("$folderName" -eq "") { $folderName = Read-Host "Enter the folder name" } + + if (Test-Path "$HOME/Repos/" -pathType Container) { # try short name + $path = "$HOME/Repos/" + } elseif (Test-Path "$HOME/repos/" -pathType Container) { + $path = "$HOME/repos/" + } elseif (Test-Path "$HOME/Repositories/" -pathType Container) { # try long name + $path = "$HOME/Repositories/" + } elseif (Test-Path "$HOME/source/repos/" -pathType Container) { # try Visual Studio default + $path = "$HOME/source/repos/" + } elseif (Test-Path "/Repos/" -pathType Container) { + $path = "/Repos/" + } else { + throw "The folder for Git repositories doesn't exist (yet)" + } + $path += $folderName + + if (-not(Test-Path "$path" -pathType Container)) { throw "The path to 📂$path doesn't exist (yet)" } + $path = Resolve-Path "$path" + Set-Location "$path" + "📂$path" + + Write-Host -noNewline " on branch: " + & git status --short --branch --show-stash + exit 0 # success +} catch { + "⚠️ Error: $($Error[0])" + exit 1 +} diff --git a/scripts/cd-repos.ps1 b/scripts/cd-repos.ps1 index 5347cca6..879f0733 100755 --- a/scripts/cd-repos.ps1 +++ b/scripts/cd-repos.ps1 @@ -6,20 +6,14 @@ .PARAMETER subpath Specifies an additional relative subpath (optional) .EXAMPLE - PS> ./cd-repos + PS> ./cd-repos.ps1 📂C:\Users\Markus\Repos - - PS> ./cd-repos rust - 📂C:\Users\Markus\Repos\rust - on branch: ## main ... origin/main .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> -param([string]$subpath = "") - try { if (Test-Path "$HOME/Repos/" -pathType Container) { # try short name $path = "$HOME/Repos/" @@ -34,16 +28,10 @@ try { } else { throw "The folder for Git repositories doesn't exist (yet)" } - if ("$subpath" -ne "") { $path += $subpath } if (-not(Test-Path "$path" -pathType Container)) { throw "The path to 📂$path doesn't exist (yet)" } $path = Resolve-Path "$path" Set-Location "$path" "📂$path" - - if ("$subpath" -ne "") { - Write-Host -noNewline " on branch: " - & git status --short --branch --show-stash - } exit 0 # success } catch { "⚠️ Error: $($Error[0])"