-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpack.ps1
91 lines (72 loc) · 2.17 KB
/
pack.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Write-Host 'Packing Fogg'
$build_version = $env:BUILD_VERSION
if ([string]::IsNullOrWhiteSpace($build_version))
{
$build_version = '1.0.0'
}
$workspace = $env:WORKSPACE
if ([string]::IsNullOrWhiteSpace($workspace))
{
$workspace = $pwd
}
# == VERSION =======================================================
Write-Host 'Setting version'
Push-Location './src'
try
{
(Get-Content 'Fogg.ps1') | ForEach-Object { $_ -replace '\$version\$', $build_version } | Set-Content 'Fogg.ps1'
Write-Host 'Version set'
}
finally
{
Pop-Location
}
# == BUNDLE =======================================================
Write-Host "Copying scripts into package"
New-Item -ItemType Directory -Path './Package/src'
Copy-Item -Path './src/Modules' -Destination './Package/src/' -Force -Recurse
Copy-Item -Path './src/Provisioners' -Destination './Package/src/' -Force -Recurse
Copy-Item -Path './src/Fogg.ps1' -Destination './Package/src/' -Force
Write-Host "Scripts copied successfully"
# == ZIP =======================================================
Write-Host "Zipping package"
Push-Location "C:\Program Files\7-Zip\"
$zipName = "$build_version-Binaries.zip"
try
{
.\7z.exe -tzip a "$workspace\$zipName" "$workspace\Package\*"
Write-Host "Package zipped successfully"
}
finally
{
Pop-Location
}
# == CHOCO =======================================================
Write-Host "Building Package Checksum"
Push-Location "$workspace"
try
{
$checksum = (checksum -t sha256 -f $zipName)
Write-Host "Checksum: $checksum"
}
finally
{
Pop-Location
}
Write-Host "Building Choco Package"
Push-Location "./nuget-packages/choco"
try
{
(Get-Content 'fogg.nuspec') | ForEach-Object { $_ -replace '\$version\$', $build_version } | Set-Content 'fogg.nuspec'
cd tools
(Get-Content 'ChocolateyInstall.ps1') | ForEach-Object { $_ -replace '\$version\$', $build_version } | Set-Content 'ChocolateyInstall.ps1'
(Get-Content 'Chocolateyinstall.ps1') | ForEach-Object { $_ -replace '\$checksum\$', $checksum } | Set-Content 'Chocolateyinstall.ps1'
cd ..
choco pack
}
finally
{
Pop-Location
}
# =========================================================
Write-Host 'Fogg Packed'