-
Notifications
You must be signed in to change notification settings - Fork 29
/
release.ps1
58 lines (46 loc) · 2.03 KB
/
release.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Env setup ---------------
if ($PSScriptRoot -match '.+?\\bin\\?') {
$dir = $PSScriptRoot + "\"
}
else {
$dir = $PSScriptRoot + "\bin\"
}
# These DLLs are preloader patchers and should be put into a different folder
$patchers = @("CtorShotgun.dll", "DemystifyExceptions.dll", "MirrorInternalLogs.dll", "StartupProfiler.dll")
function GetCopyPath($pluginFile)
{
if ($patchers.Contains($pluginFile)) {
return $dir + "\copy\BepInEx\patchers";
}
return $dir + "\copy\BepInEx\plugins";
}
$plugins = $dir + "\Release"
# Create releases ---------
function CreateZip ($pluginFile)
{
$copy = GetCopyPath($pluginFile.Name)
Remove-Item -Force -Path ($dir + "\copy") -Recurse -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force -Path $copy
Copy-Item -Path $pluginFile.FullName -Destination $copy -Recurse -Force
# the replace removes .0 from the end of version up until it hits a non-0 or there are only 2 version parts remaining (e.g. v1.0 v1.0.1)
$ver = (Get-ChildItem -Path ($copy) -Filter "*.dll" -Recurse -Force)[0].VersionInfo.FileVersion.ToString() -replace "^([\d+\.]+?\d+)[\.0]*$", '${1}'
Compress-Archive -Path ($copy + "\..\") -Force -CompressionLevel "Optimal" -DestinationPath ($dir + $pluginFile.BaseName + "_" + "r" + $ver + ".zip")
}
foreach ($pluginFile in Get-ChildItem -Path $plugins)
{
try
{
CreateZip ($pluginFile)
}
catch
{
# retry
CreateZip ($pluginFile)
}
}
Remove-Item -Force -Path ($dir + "\copy") -Recurse
# Create Starup profiler release
$profilerdir = $dir + "\..\src\SimpleProfiler\bin"
Get-ChildItem -Path ($profilerdir) | Where-Object{$_.Name -Match "^MonoProfiler(32|64)\.(?!dll)"} | Remove-Item
$ver = (Get-ChildItem -Path $profilerdir -Filter "MonoProfilerController.dll" -Recurse -Force)[0].VersionInfo.FileVersion.ToString() -replace "^([\d+\.]+?\d+)[\.0]*$", '${1}'
Compress-Archive -Path ($profilerdir + "\*") -Force -CompressionLevel "Optimal" -DestinationPath ($dir + "SimpleMonoProfiler_" + "r" + $ver + ".zip")