|
1 |
| -$AndroidToolPath = "${env:ProgramFiles(x86)}\Android\android-sdk\tools\android" |
| 1 | +set-strictmode -version 2.0 |
| 2 | +$ErrorActionPreference="Stop" |
| 3 | + |
| 4 | +$AndroidToolPath = "${env:ProgramFiles(x86)}\Android\android-sdk\tools\android" |
2 | 5 | #$AndroidToolPath = "$env:localappdata\Android\android-sdk\tools\android"
|
3 | 6 |
|
4 |
| -Function Get-AndroidSDKs() { |
5 |
| - $output = & $AndroidToolPath list sdk --all |
6 |
| - $sdks = $output |% { |
7 |
| - if ($_ -match '(?<index>\d+)- (?<sdk>.+), revision (?<revision>[\d\.]+)') { |
8 |
| - $sdk = New-Object PSObject |
9 |
| - Add-Member -InputObject $sdk -MemberType NoteProperty -Name Index -Value $Matches.index |
10 |
| - Add-Member -InputObject $sdk -MemberType NoteProperty -Name Name -Value $Matches.sdk |
11 |
| - Add-Member -InputObject $sdk -MemberType NoteProperty -Name Revision -Value $Matches.revision |
12 |
| - $sdk |
13 |
| - } |
14 |
| - } |
15 |
| - $sdks |
| 7 | +Function Get-AllAndroidSDKs() { |
| 8 | + $output = & $AndroidToolPath list sdk --all |
| 9 | + $sdks = $output |% { |
| 10 | + if ($_ -match '(?<index>\d+)- (?<sdk>.+), revision (?<revision>[\d\.]+)') { |
| 11 | + $sdk = New-Object PSObject |
| 12 | + Add-Member -InputObject $sdk -MemberType NoteProperty -Name Index -Value $Matches.index |
| 13 | + Add-Member -InputObject $sdk -MemberType NoteProperty -Name Name -Value $Matches.sdk |
| 14 | + Add-Member -InputObject $sdk -MemberType NoteProperty -Name Revision -Value $Matches.revision |
| 15 | + $sdk |
| 16 | + } |
| 17 | + } |
| 18 | + $sdks |
16 | 19 | }
|
17 | 20 |
|
18 |
| -Function Install-AndroidSDK() { |
19 |
| - [CmdletBinding()] |
20 |
| - Param( |
21 |
| - [Parameter(Mandatory=$true, Position=0)] |
22 |
| - [PSObject[]]$sdks |
| 21 | +Function Execute-AndroidSDKInstall() { |
| 22 | + [CmdletBinding()] |
| 23 | + Param( |
| 24 | + [Parameter(Mandatory=$true, Position=0)] |
| 25 | + [PSObject[]]$sdks |
23 | 26 | )
|
24 | 27 |
|
25 |
| - $sdkIndexes = $sdks |% { $_.Index } |
26 |
| - $sdkIndexArgument = [string]::Join(',', $sdkIndexes) |
27 |
| - Echo 'y' | & $AndroidToolPath update sdk -u -a -t $sdkIndexArgument |
| 28 | + $sdkIndexes = $sdks |% { $_.Index } |
| 29 | + $sdkIndexArgument = [string]::Join(',', $sdkIndexes) |
| 30 | + Echo 'y' | & $AndroidToolPath update sdk -u -a -t $sdkIndexArgument |
| 31 | +} |
| 32 | + |
| 33 | +Function Install-AndroidSDK |
| 34 | +{ |
| 35 | + param([string]$Level) |
| 36 | + |
| 37 | + $sdks = Get-AllAndroidSDKs |? { $_.name -like "sdk platform*API $Level*" -or $_.name -like "google apis*api $Level" } |
| 38 | + Execute-AndroidSDKInstall -sdks $sdks |
28 | 39 | }
|
29 | 40 |
|
30 |
| -$sdks = Get-AndroidSDKs |? { $_.name -like 'sdk platform*API 15*' -or $_.name -like 'google apis*api 15' } |
31 |
| -Install-AndroidSDK -sdks $sdks |
| 41 | +Install-AndroidSDK 15 |
| 42 | +Install-AndroidSDK 20 |
| 43 | +Install-AndroidSDK 21 |
| 44 | +Install-AndroidSDK 22 |
| 45 | +Install-AndroidSDK 23 |
0 commit comments