PowerShell/docs/cd-repos.md
2024-03-27 17:36:59 +01:00

2.6 KiB

Script: cd-repos.ps1

This PowerShell script changes the working directory to the user's Git repositories folder.

Parameters

PS> ./cd-repos.ps1 [[-subpath] <String>] [<CommonParameters>]

-subpath <String>
    Specifies an additional relative subpath (optional)
    
    Required?                    false
    Position?                    1
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false

[<CommonParameters>]
    This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, 
    WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

Example

PS> ./cd-repos
📂C:\Users\Markus\Repos



PS>  ./cd-repos rust
📂C:\Users\Markus\Repos\rust
  on branch: ## main ... origin/main

Notes

Author: Markus Fleschutz | License: CC0

https://github.com/fleschutz/PowerShell

Script Content

<#
.SYNOPSIS
	Sets the working directory to the user's repos folder
.DESCRIPTION
	This PowerShell script changes the working directory to the user's Git repositories folder.
.PARAMETER subpath
	Specifies an additional relative subpath (optional)
.EXAMPLE
	PS> ./cd-repos
	📂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/"
	} 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)"
	}
	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])"
	exit 1
}

(generated by convert-ps2md.ps1 using the comment-based help of cd-repos.ps1 as of 03/27/2024 17:36:23)