mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
56 lines
1.7 KiB
PowerShell
56 lines
1.7 KiB
PowerShell
param (
|
|
[Parameter(Mandatory = $true)][string]$sourceDirectory,
|
|
[Parameter(Mandatory = $true)][string]$destinationDirectory,
|
|
[Parameter(Mandatory = $false)][string]$artemisArgs
|
|
)
|
|
|
|
Write-Host "Artemis update script v1"
|
|
|
|
# Wait up to 10 seconds for the process to shut down
|
|
for ($i = 1; $i -le 10; $i++) {
|
|
$process = Get-Process -Name Artemis.UI.Windows -ErrorAction SilentlyContinue
|
|
if (!$process)
|
|
{
|
|
break
|
|
}
|
|
Write-Host "Waiting for Artemis to shut down ($i / 10)"
|
|
Start-Sleep -Seconds 1
|
|
}
|
|
|
|
# If the process is still running, kill it
|
|
$process = Get-Process -Name Artemis.UI.Windows -ErrorAction SilentlyContinue
|
|
if ($process)
|
|
{
|
|
Stop-Process -Id $process.Id -Force
|
|
Start-Sleep -Seconds 1
|
|
}
|
|
|
|
# Check if the destination directory exists
|
|
if (!(Test-Path $destinationDirectory))
|
|
{
|
|
Write-Error "The destination directory at $destinationDirectory does not exist"
|
|
Exit 1
|
|
}
|
|
|
|
# Clear the destination directory but don't remove it, leaving ACL entries in tact
|
|
Write-Host "Cleaning up old version where needed"
|
|
Get-ChildItem $destinationDirectory | Remove-Item -Recurse -Force
|
|
|
|
# Move the contents of the source directory to the destination directory
|
|
Write-Host "Installing new files"
|
|
Get-ChildItem $sourceDirectory | Move-Item -Destination $destinationDirectory
|
|
# Remove the now empty source directory
|
|
Remove-Item $sourceDirectory
|
|
|
|
Write-Host "Finished! Restarting Artemis"
|
|
Start-Sleep -Seconds 1
|
|
|
|
# When finished, run the updated version
|
|
if ($artemisArgs)
|
|
{
|
|
Start-Process -FilePath "$destinationDirectory\Artemis.UI.Windows.exe" -WorkingDirectory $destinationDirectory -ArgumentList $artemisArgs
|
|
}
|
|
else
|
|
{
|
|
Start-Process -FilePath "$destinationDirectory\Artemis.UI.Windows.exe" -WorkingDirectory $destinationDirectory
|
|
} |