-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LRZ++V1.5.2 | Added Updater, Tweaked Install Script, Fixed incorrectl…
…y handled dvar,
- Loading branch information
1 parent
9c01643
commit 2987b1c
Showing
7 changed files
with
141 additions
and
18 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
param ( | ||
[Parameter(HelpMessage = "Do not prompt for any user input")] | ||
[switch]$Silent = $True, | ||
|
||
[Parameter(HelpMessage = "Clean unneeded files listed in _delete.txt after update")] | ||
[switch]$Clean = $False, | ||
|
||
[Parameter(HelpMessage = "Only update releases in the verified stream")] | ||
[switch]$Verified = $False, | ||
|
||
[Parameter(HelpMessage = "Directory to install to")] | ||
[ValidateScript({ | ||
if (-Not($_ | Test-Path)) | ||
{ | ||
throw "File or folder does not exist" | ||
} return $true | ||
})] | ||
[System.IO.FileInfo]$Directory | ||
) | ||
|
||
Write-Output "=======================================" | ||
Write-Output " LRZ++ Updater v1 " | ||
Write-Output " by TheFantasticLoki " | ||
Write-Output "=======================================" | ||
|
||
$stopwatch = [system.diagnostics.stopwatch]::StartNew() | ||
$repoName = "TheFantasticLoki/LokisRagnarokZombies" | ||
$assetPattern = "LokisRagnarok*.zip" | ||
|
||
if ($Verified) | ||
{ | ||
$releasesUri = "https://api.github.com/repos/$repoName/releases/latest" | ||
} | ||
|
||
else | ||
{ | ||
$releasesUri = "https://api.github.com/repos/$repoName/releases" | ||
} | ||
|
||
Write-Output "Retrieving latest version info..." | ||
|
||
$releaseInfo = (Invoke-WebRequest $releasesUri | ConvertFrom-Json) | Select -First 1 | ||
$asset = $releaseInfo.assets | Where-Object name -like $assetPattern | Select -First 1 | ||
$downloadUri = $asset.browser_download_url | ||
$filename = Split-Path $downloadUri -leaf | ||
|
||
Write-Output "The latest version is $( $releaseInfo.tag_name ) released $( $releaseInfo.published_at )" | ||
|
||
if (!$Silent) | ||
{ | ||
$stopwatch.Stop() | ||
Write-Warning "All LRZ++ files will be updated. Are you sure you want to continue?" -WarningAction Inquire | ||
$stopwatch.Start() | ||
} | ||
|
||
Write-Output "Downloading update. This might take a moment..." | ||
|
||
$fileDownload = Invoke-WebRequest -Uri $downloadUri | ||
if ($fileDownload.StatusDescription -ne "OK") | ||
{ | ||
throw "Could not update LRZ++. ($fileDownload.StatusDescription)" | ||
} | ||
|
||
$remoteHash = $fileDownload.Headers['Content-MD5'] | ||
$decodedHash = [System.BitConverter]::ToString([System.Convert]::FromBase64String($remoteHash)).replace('-', '') | ||
$directoryPath = Get-Location | ||
$fullPath = "$directoryPath\$filename" | ||
$outputFile = [System.IO.File]::Open($fullPath, 2) | ||
$stream = [System.IO.BinaryWriter]::new($outputFile) | ||
|
||
if ($Directory) | ||
{ | ||
$outputDir = $Directory | ||
} | ||
|
||
else | ||
{ | ||
$outputDir = Get-Location | ||
} | ||
|
||
try | ||
{ | ||
$stream.Write($fileDownload.Content) | ||
} | ||
finally | ||
{ | ||
$stream.Dispose() | ||
$outputFile.Dispose() | ||
} | ||
|
||
$localHash = (Get-FileHash -Path $fullPath -Algorithm MD5).Hash | ||
|
||
if ($localHash -ne $decodedHash) | ||
{ | ||
throw "Failed to update. File hashes don't match!" | ||
} | ||
|
||
Write-Output "Extracting $filename to $outputDir" | ||
Expand-Archive -Path $fullPath -DestinationPath $outputDir -Force | ||
|
||
if ($Clean) | ||
{ | ||
Write-Output "Running post-update clean..." | ||
$DeleteList = Get-Content -Path ./_delete.txt | ||
ForEach ($file in $DeleteList) | ||
{ | ||
Write-Output "Deleting $file" | ||
Remove-Item -Path $file | ||
} | ||
} | ||
|
||
Write-Output "Removing temporary files..." | ||
Remove-Item -Force $fullPath | ||
|
||
$stopwatch.Stop() | ||
$executionTime = [math]::Round($stopwatch.Elapsed.TotalSeconds, 0) | ||
|
||
Write-Output "Update completed successfully in $executionTime seconds!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
if(Test-Path -Path $env:LOCALAPPDATA\Plutonium\storage\t6\scripts\zm\Loki-RagnarokV*.gsc) | ||
{ | ||
Write-Output "Found Existing Version of Loki's Ragnarok Zombies, Removing..." | ||
Remove-Item $env:LOCALAPPDATA\Plutonium\storage\t6\scripts\zm\Loki-RagnarokV*.gsc | ||
Write-Output "Removed Old Version of Loki's Ragnarok Zombies" | ||
} | ||
|
||
if(Test-Path -Path $env:LOCALAPPDATA\Plutonium\storage\t6\scripts\mp\Loki-RagnarokMPV*.gsc) | ||
{ | ||
Write-Output "Found Existing Version of Loki's Ragnarok Multiplayer, Removing..." | ||
Remove-Item $env:LOCALAPPDATA\Plutonium\storage\t6\scripts\mp\Loki-RagnarokMPV*.gsc | ||
Write-Output "Removed Old Version of Loki's Ragnarok Multiplayer" | ||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.