Adito.psm1
Function Install-AditoDesigner { Param ( [String] $Version = '2024.1.3' ) $PathTemp = [System.IO.Path]::GetTempPath() $VersionYear = ($Version -Split '\.')[0] $PathDestination = [Environment]::GetFolderPath('ProgramFiles') + '\ADITO ' + $Version $UriBase = "https://releases.adito.cloud/${VersionYear}/${Version}" $Files = @( @{ Uri = "${Uribase}/ADITO_${Version}_windows-x64.exe" OutFile = "$PathTemp\ADITO.exe" }, @{ Uri = "${Uribase}/ADITODesigner_${Version}.zip" OutFile = "$PathTemp\ADITO.zip" } ) $Jobs = @() Foreach ($File in $Files) { $Jobs += Start-ThreadJob -Name $File.OutFile -InputObject $File -Streaminghost $Host -ScriptBlock { Try { $Params = $Using:File Invoke-WebRequest @Params } Catch { If ($Input.Uri -like '*.exe') { Write-Error -Message "The version was not found." -Category InvalidArgument } } } } Wait-Job -Job $Jobs | Out-Null Foreach ($Job in $Jobs) { Receive-Job -Job $Job } If (Test-Path -Path "$PathTemp\ADITO.exe") { Start-Process -Wait -FilePath "$PathTemp\ADITO.exe" -ArgumentList "-q -dir `"$PathDestination`"" Start-Process -Wait Powershell -Verb RunAs -ArgumentList "-Command `"Expand-Archive -Force -Path '$PathTemp\ADITO.zip' -DestinationPath '$PathDestination'`"" $Shell = New-Object -ComObject WScript.Shell $Shortcut = $Shell.CreateShortcut([Environment]::GetFolderPath('StartMenu') + "\Programs\ADITO Designer $Version.lnk") $Shortcut.TargetPath = "$PathDestination\bin\ADITOdesigner64.exe" $Shortcut.Save() Remove-Item -Path "$PathTemp/ADITO.*" Remove-Item -Force -Recurse -Path ([Environment]::GetFolderPath('StartMenu') + '\Programs\ADITO 2023') } } |