Functions/Invoke-Deployment.ps1
function Invoke-Deployment { [cmdletbinding()] param ( [Parameter(Mandatory = $true, ParameterSetName = "TEST")] [Switch]$Test, [Parameter(Mandatory = $true, ParameterSetName = "ACC")] [Switch]$Acc, [Parameter(Mandatory = $true, ParameterSetName = "PROD")] [Switch]$Prod, [Parameter(Mandatory = $true)] [ValidateSet("URA10", "URAME", "Recalc", "SIV-RS", "SIV-BA", "DRP")] [string]$App, [Parameter(Mandatory = $true)] [ValidateScript( {Test-Path $_ })] [System.IO.FileInfo]$SourceFolder, [Parameter(Mandatory = $true)] [ValidateSet("All", "OnlyExe")] [string]$DeploymentType ) switch ($PSCmdlet.ParameterSetName) { "TEST" { $Citrix = "TEST" } "ACC" { $Citrix = "ACC" } "PROD" { $Citrix = "PROD" } } switch ($App) { "URA10" { $Result = Invoke-Ura10Deployment -Citrix $Citrix } "URAME" { $Result = Invoke-UraMeDeployment -Citrix $Citrix } "Recalc" { $Result = Invoke-RecalcDeployment -Citrix $Citrix } "SIV-RS" { $Result = Invoke-SivRsDeployment -Citrix $Citrix } "SIV-BA" { $Result = Invoke-SivBaDeployment -Citrix $Citrix } "DRP" { $Result = Invoke-DrpDeployment -Citrix $Citrix } } Write-LogApp INFO "Startujem skriptu" $App Write-LogApp INFO "Izabrano je $Citrix okruzenje" $App Add-Type -AssemblyName System.Windows.Forms -ErrorAction Stop | Out-Null #verzija aplikacije try { $Exe = Get-ItemProperty -Path $SourceFolder\$($Result.AppExe) -ErrorAction Stop $Verzija = ($Exe.VersionInfo.FileVersion).Trim() if ($Verzija) { Write-LogApp INFO "$App verzija za deploy $Verzija" $App } else { Write-LogApp INFO "$AppExe nema u sebi informaciju o verziji" $App } } catch { Write-Warning -Message "Greska u povlacenju $AppExe verzije. Error: $_" -Verbose Write-LogApp ERROR "Greska u povlacenju $AppExe verzije | Error: $_" $App Prekid break } #Provera pre predstave $MsgBoxText = " Aplikacija: $App ` Verzija: $Verzija ` Deployment tip: $DeploymentType ` Citrix okruzenje: $Citrix ` Da li zelis da uradi deployment? " $MsgBox = [System.Windows.Forms.MessageBox]::Show($MsgBoxText, "Potvrda", "YesNo", "Question") if ($MsgBox -eq "No") { Write-Warning -Message "Korisnik odustao od prebacivanja nove verzije" -Verbose Write-LogApp INFO "Korisnik odustao od prebacivanja nove verzije" $App Prekid break } elseif ($MsgBox -eq "Yes") { Write-Verbose -Message "Korisnik potvrdio deploy verzije $Verzija na $Citrix okruzenje" Write-LogApp INFO "Korisnik potvrdio deploy verzije $Verzija na $Citrix okruzenje" $App } $DeploymentShowParams = @{ App = $App AppExe = $Result.AppExe Verzija = $Verzija DestinationFolder = $Result.DestinationFolder Citrix = $Citrix SourceFolder = $SourceFolder DeploymentLogFolder = $Result.DeploymentLogFolder DeploymentType = $DeploymentType } Invoke-DeploymentShow @DeploymentShowParams } |