Private/Get-Configurations.ps1
|
Function Get-Configurations { <# .Synopsis Downloads Configurations from your Git Server .Description Downloads Configurations from your Git Server .Outputs Returns the amount of Configurations #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] $ConfigurationNames, [Parameter(Mandatory=$true)] $GitServer, [Parameter(Mandatory=$true)] $Path ) begin { $CloneDirectory = "$Path\Configuration" $Counter = 0 } process { foreach ($Configuration in $ConfigurationNames) { Write-Verbose "Cloning $GitServer/$($Configuration.Name).git" if(!(Test-Path -Path "$CloneDirectory\$($Configuration.Name)")){ Start-Process "git" -ArgumentList "clone $GitServer/$($Configuration.Name).git $CloneDirectory\$($Configuration.Name)" -Wait } else { Set-Location "$CloneDirectory\$($Configuration.Name)" Start-Process "git" -ArgumentList "pull" -Wait } ++$Counter } } end { return $Counter } } |