use helper functions

This commit is contained in:
Aleksandr Chebotov
2020-09-30 23:42:32 +03:00
parent d66f67dbe1
commit c50e6e62b5
5 changed files with 63 additions and 16 deletions

View File

@@ -37,6 +37,9 @@ Export-ModuleMember -Function @(
'Get-VsCatalogJsonPath' 'Get-VsCatalogJsonPath'
'Get-VisualStudioPath' 'Get-VisualStudioPath'
'Install-AndroidSDKPackages' 'Install-AndroidSDKPackages'
'Get-AndroidPackages'
'Get-AndroidPackagesByName'
'Get-AndroidPackagesByVersion'
'Get-VisualStudioPackages' 'Get-VisualStudioPackages'
'Get-VisualStudioComponents' 'Get-VisualStudioComponents'
) )

View File

@@ -418,3 +418,41 @@ function Install-AndroidSDKPackages {
& $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package" & $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package"
} }
} }
function Get-AndroidPackages {
Param
(
[Parameter(Mandatory=$true)]
[string]$AndroidSDKManagerPath
)
return (& $AndroidSDKManagerPath --list --verbose).Trim() | Foreach-Object { $_.Split()[0] } | Where-Object {$_}
}
function Get-AndroidPackagesByName {
Param (
[Parameter(Mandatory=$true)]
[string[]]$AndroidPackages,
[Parameter(Mandatory=$true)]
[string]$PrefixPackageName
)
return $AndroidPackages | Where-Object { "$_".StartsWith($PrefixPackageName) }
}
function Get-AndroidPackagesByVersion {
Param (
[Parameter(Mandatory=$true)]
[string[]]$AndroidPackages,
[Parameter(Mandatory=$true)]
[string]$PrefixPackageName,
[object]$MinimumVersion,
[char]$Delimeter,
[int]$Index = 0
)
$Type = $MinimumVersion.GetType()
$packagesByName = Get-AndroidPackagesByName -AndroidPackages $AndroidPackages -PrefixPackageName $PrefixPackageName
$packagesByVersion = $packagesByName | Where-Object { ($_.Split($Delimeter)[$Index] -as $Type) -ge $MinimumVersion }
return $packagesByVersion | Sort-Object { $_.Split($Delimeter)[$Index] -as $Type} -Unique
}

View File

@@ -35,17 +35,23 @@ $sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat"
& $sdkManager --sdk_root=$sdkRoot "platform-tools" & $sdkManager --sdk_root=$sdkRoot "platform-tools"
# get packages info # get packages info
$androidPackages = & $sdkManager --list --verbose $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager
# platforms # platforms
[int]$platformMinVersion = $androidToolset.platform_min_version [int]$platformMinVersion = $androidToolset.platform_min_version
$platformList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("platforms;") } | Foreach-Object { $_.Split()[0] } | $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique -PrefixPackageName "platforms;" `
-MinimumVersion $platformMinVersion `
-Delimeter "-" `
-Index 1
# build-tools # build-tools
[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
$buildToolsList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("build-tools;") } | Foreach-Object { $_.Split()[0] } | $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique -PrefixPackageName "build-tools;" `
-MinimumVersion $buildToolsMinVersion `
-Delimeter ";" `
-Index 1
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot ` -AndroidSDKRootPath $sdkRoot `

View File

@@ -31,12 +31,6 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages return $androidInstalledPackages
} }
function Get-AndroidPackages {
$androidSDKManagerPath = Get-AndroidSDKManagerPath
$androidPackages = & $androidSDKManagerPath --list --verbose
return $androidPackages
}
function Build-AndroidTable { function Build-AndroidTable {
$packageInfo = Get-AndroidInstalledPackages $packageInfo = Get-AndroidInstalledPackages
return @( return @(

View File

@@ -2,21 +2,27 @@ Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android
Describe "Android SDK" { Describe "Android SDK" {
$androidToolset = (Get-ToolsetContent).android $androidToolset = (Get-ToolsetContent).android
$androidPackages = Get-AndroidPackages $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
$androidInstalledPackages = Get-AndroidInstalledPackages $androidInstalledPackages = Get-AndroidInstalledPackages
$platformTestCases = @() $platformTestCases = @()
[int]$platformMinVersion = $androidToolset.platform_min_version [int]$platformMinVersion = $androidToolset.platform_min_version
$platformList = $androidPackages | Where-Object { "$_".StartsWith("platforms;") } | $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique -PrefixPackageName "platforms;" `
-MinimumVersion $platformMinVersion `
-Delimeter "-" `
-Index 1
$platformList | ForEach-Object { $platformList | ForEach-Object {
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages } $platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
} }
$buildToolsTestCases = @() $buildToolsTestCases = @()
[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
$buildToolsList = $androidPackages | Where-Object { "$_".StartsWith("build-tools;") } | $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique -PrefixPackageName "build-tools;" `
-MinimumVersion $buildToolsMinVersion `
-Delimeter ";" `
-Index 1
$buildToolsList | ForEach-Object { $buildToolsList | ForEach-Object {
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages } $buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
} }