-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgo.ps1
59 lines (45 loc) · 1.65 KB
/
go.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
Add-Type -AssemblyName System.IO.Compression.FileSystem
Import-Module BitsTransfer
$S3_BUCKET = "cu-deng-appstream-packages"
$PS_VERSION = $PSVersionTable.PSVersion.Major
$WORK_DIR = $env:TEMP
cd $WORK_DIR
<#function CreatePackageForm($packages) {
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
$form = New-Object System.Windows.Forms.Form
$button = New-Object System.Windows.Forms.Button
}#>
$packages = @()
$s3BucketList = [xml](Invoke-WebRequest "https://s3.amazonaws.com/${S3_BUCKET}").Content
foreach ($s3Object in $s3BucketList.ListBucketResult.Contents) {
$s3Key = $s3Object.Key
if ($s3Key.StartsWith('packages') -And $s3Key.ToLower().EndsWith('.zip')) {
$packages += $s3Object.Key
}
}
foreach ($package in $packages) {
$s3Key = [System.Uri]"https://s3.amazonaws.com/${S3_BUCKET}/${package}"
$zipName = [io.path]::GetFileName($s3Key.AbsolutePath)
$baseName = [io.path]::GetFileNameWithoutExtension($s3Key.AbsolutePath)
$zipPath = "${WORK_DIR}\${zipName}"
$installPath = "${WORK_DIR}\${baseName}"
echo "Downloading Package: ${zipName}..."
Start-BitsTransfer $s3Key.AbsoluteUri $zipPath
echo "Extracting Package: ${zipName}..."
if ($PS_VERSION -lt 5) {
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipPath, $installPath)
}
else {
Expand-Archive $zipPath -DestinationPath $installPath
}
echo "Deleting Archive: ${zipName}..."
Remove-Item $zipPath
echo "Installing Package..."
cd $installPath
& .\install.ps1
cd $WORK_DIR
echo "Deleting Package Install Directory"
Remove-Item $installPath -Force -Recurse
}
echo "Done!"