/
install.ps1
78 lines (72 loc) · 2.99 KB
/
install.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
$ErrorActionPreference = "Stop"
if (-not (Test-Path 'C:\build-cache')) {
[void](New-Item 'C:\build-cache' -ItemType 'directory')
}
# PHP SDK
$bname = "php-sdk-$env:BIN_SDK_VER.zip"
if (-not (Test-Path C:\build-cache\$bname)) {
Invoke-WebRequest "https://github.com/microsoft/php-sdk-binary-tools/archive/$bname" -OutFile "C:\build-cache\$bname"
}
$dname0 = "php-sdk-binary-tools-php-sdk-$env:BIN_SDK_VER"
$dname1 = "php-sdk-$env:BIN_SDK_VER"
if (-not (Test-Path "C:\build-cache\$dname1")) {
Expand-Archive "C:\build-cache\$bname" "C:\build-cache"
Move-Item "C:\build-cache\$dname0" "C:\build-cache\$dname1"
}
# PHP releases
Invoke-WebRequest "https://windows.php.net/downloads/releases/releases.json" -OutFile "C:\build-cache\releases.json"
$php_version = (Get-Content -Path "C:\build-cache\releases.json" | ConvertFrom-Json | ForEach-Object {
if ($_."$env:PHP_VER") {
return $_."$env:PHP_VER".version
} else {
return "$env:PHP_VER"
}
})
# PHP devel pack
$ts_part = ''
if ('0' -eq $env:TS) {
$ts_part = '-nts'
}
$bname = "php-devel-pack-$php_version$ts_part-Win32-$env:VC-$env:ARCH.zip"
if (-not (Test-Path "C:\build-cache\$bname")) {
try {
Invoke-WebRequest "https://windows.php.net/downloads/releases/$bname" -OutFile "C:\build-cache\$bname"
} catch [System.Net.WebException] {
Invoke-WebRequest "https://windows.php.net/downloads/releases/archives/$bname" -OutFile "C:\build-cache\$bname"
}
}
$dname0 = "php-$php_version-devel-$env:VC-$env:ARCH"
$dname1 = "php-$php_version$ts_part-devel-$env:VC-$env:ARCH"
if (-not (Test-Path "C:\build-cache\$dname1")) {
Expand-Archive "C:\build-cache\$bname" 'C:\build-cache'
if (-not (Test-Path "C:\build-cache\$dname0")) {
$php_normalize_version = $php_version.Split("-")[0]
$dname0 = "php-$php_normalize_version-devel-$env:VC-$env:ARCH"
}
if ($dname0 -ne $dname1) {
Move-Item "C:\build-cache\$dname0" "C:\build-cache\$dname1"
}
}
$env:PATH = "C:\build-cache\$dname1;$env:PATH"
# PHP binary
$bname = "php-$php_version$ts_part-Win32-$env:VC-$env:ARCH.zip"
if (-not (Test-Path "C:\build-cache\$bname")) {
try {
Invoke-WebRequest "https://windows.php.net/downloads/releases/$bname" -OutFile "C:\build-cache\$bname"
} catch [System.Net.WebException] {
Invoke-WebRequest "https://windows.php.net/downloads/releases/archives/$bname" -OutFile "C:\build-cache\$bname"
}
}
$dname = "php-$php_version$ts_part-Win32-$env:VC-$env:ARCH"
if (-not (Test-Path "C:\build-cache\$dname")) {
Expand-Archive "C:\build-cache\$bname" "C:\build-cache\$dname"
}
$env:PHP_PATH = "C:\build-cache\$dname"
$env:PATH = "$env:PHP_PATH;$env:PATH"
# # library dependency
# $bname = "$env:DEP-$env:VC-$env:ARCH.zip"
# if (-not (Test-Path "C:\build-cache\$bname")) {
# Invoke-WebRequest "https://windows.php.net/downloads/pecl/deps/$bname" -OutFile "C:\build-cache\$bname"
# Expand-Archive "C:\build-cache\$bname" 'C:\build-cache\deps'
# }
$env:PATH = "C:\build-cache\deps\bin;$env:PATH"