Files
runner-images/images/macos/scripts/docs-gen/SoftwareReport.Android.psm1
T

205 lines
6.9 KiB
PowerShell
Raw Normal View History

2023-11-28 02:25:03 +01:00
Import-Module "$PSScriptRoot/SoftwareReport.Helpers.psm1" -DisableNameChecking
2021-09-15 10:14:42 +03:00
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
2020-09-10 14:34:08 +03:00
function Split-TableRowByColumns {
2023-12-04 12:13:08 +01:00
param (
2020-09-10 14:34:08 +03:00
[string] $Row
)
2023-12-04 12:13:08 +01:00
2020-09-10 14:34:08 +03:00
return $Row.Split("|") | ForEach-Object { $_.trim() }
}
function Get-AndroidSDKRoot {
return Join-Path $env:HOME "Library" "Android" "sdk"
}
function Get-AndroidSDKManagerPath {
$androidSDKDir = Get-AndroidSDKRoot
return Join-Path $androidSDKDir "cmdline-tools" "latest" "bin" "sdkmanager"
2020-09-10 14:34:08 +03:00
}
function Get-AndroidInstalledPackages {
$androidSDKManagerPath = Get-AndroidSDKManagerPath
$androidSDKManagerList = Invoke-Expression "$androidSDKManagerPath --list_installed"
return $androidSDKManagerList
2020-09-10 14:34:08 +03:00
}
2020-09-29 18:19:26 +03:00
function Get-AndroidPackages {
2023-06-16 18:34:04 +02:00
$androidSDKDir = Get-AndroidSDKRoot
2020-09-29 18:19:26 +03:00
$androidSDKManagerPath = Get-AndroidSDKManagerPath
2023-06-16 18:34:04 +02:00
$packagesListFile = Join-Path $androidSDKDir "packages-list.txt"
if (-Not (Test-Path -Path $packagesListFile -PathType Leaf)) {
(& $androidSDKManagerPath --list --verbose) |
Where-Object { $_ -Match "^[^\s]" } |
Where-Object { $_ -NotMatch "^(Loading |Info: Parsing |---|\[=+|Installed |Available )" } |
Where-Object { $_ -NotMatch "^[^;]*$" } |
Out-File -FilePath $packagesListFile
Write-Host Android packages list:
Get-Content $packagesListFile
}
return Get-Content $packagesListFile
2020-09-29 18:19:26 +03:00
}
2020-09-21 12:05:58 +03:00
function Build-AndroidTable {
Write-Host "Build-AndroidTable"
$packageInfo = Get-AndroidInstalledPackages
2023-12-04 12:13:08 +01:00
2020-09-21 12:05:58 +03:00
return @(
@{
2021-01-19 18:44:12 +03:00
"Package" = "Android Command Line Tools"
"Version" = Get-AndroidCommandLineToolsVersion
2020-09-21 12:05:58 +03:00
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "Android Emulator"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Emulator"
2020-09-21 12:05:58 +03:00
},
@{
"Package" = "Android SDK Build-tools"
"Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "Android SDK Platforms"
"Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
2023-12-04 12:13:08 +01:00
},
2020-09-21 12:05:58 +03:00
@{
"Package" = "Android SDK Platform-Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
},
2020-12-09 00:13:20 +05:00
@{
2021-01-19 18:44:12 +03:00
"Package" = "Android SDK Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
2020-09-21 12:05:58 +03:00
},
@{
"Package" = "Android Support Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "CMake"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
2020-09-21 12:05:58 +03:00
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "Google APIs"
"Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
2020-09-21 12:05:58 +03:00
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "Google Play services"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
2020-09-21 12:05:58 +03:00
},
@{
2021-01-19 18:44:12 +03:00
"Package" = "Google Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
2020-09-21 12:05:58 +03:00
},
@{
"Package" = "NDK"
"Version" = Get-AndroidNDKVersions
2021-01-19 18:44:12 +03:00
},
@{
"Package" = "SDK Patch Applier v4"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
2020-09-21 12:05:58 +03:00
}
) | Where-Object { $_.Version } | ForEach-Object {
[PSCustomObject] @{
"Package Name" = $_.Package
"Version" = $_.Version
}
2020-09-10 14:34:08 +03:00
}
}
function Build-AndroidEnvironmentTable {
$androidVersions = Get-Item env:ANDROID_*
$shoulddResolveLink = 'ANDROID_NDK', 'ANDROID_NDK_HOME', 'ANDROID_NDK_ROOT', 'ANDROID_NDK_LATEST_HOME'
2023-12-04 12:13:08 +01:00
return $androidVersions | Sort-Object -Property Name | ForEach-Object {
[PSCustomObject] @{
"Name" = $_.Name
"Value" = if ($shoulddResolveLink.Contains($_.Name )) { Get-PathWithLink($_.Value) } else { $_.Value }
}
}
}
2020-09-21 12:05:58 +03:00
function Get-AndroidPackageVersions {
2020-09-10 14:34:08 +03:00
param (
[Parameter(Mandatory)]
2020-09-21 12:05:58 +03:00
[object] $PackageInfo,
[Parameter(Mandatory)]
[object] $MatchedString
2020-09-10 14:34:08 +03:00
)
2020-09-21 12:05:58 +03:00
$versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
2020-09-10 14:34:08 +03:00
$packageInfoParts = Split-TableRowByColumns $_
2020-09-21 12:05:58 +03:00
return $packageInfoParts[1]
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
return ($versions -Join "<br>")
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
function Get-AndroidPlatformVersions {
2020-09-10 14:34:08 +03:00
param (
[Parameter(Mandatory)]
2020-09-21 12:05:58 +03:00
[object] $PackageInfo
2020-09-10 14:34:08 +03:00
)
2020-09-21 12:05:58 +03:00
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
2020-09-10 14:34:08 +03:00
$packageInfoParts = Split-TableRowByColumns $_
2020-09-21 12:05:58 +03:00
$revision = $packageInfoParts[1]
$version = $packageInfoParts[0].split(";")[1]
return "$version (rev $revision)"
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
[array]::Reverse($versions)
return ($versions -Join "<br>")
2020-09-10 14:34:08 +03:00
}
function Get-AndroidCommandLineToolsVersion {
$commandLineTools = Get-AndroidSDKManagerPath
(& $commandLineTools --version | Out-String).Trim() -match "(?<version>^(\d+\.){1,}\d+$)" | Out-Null
$commandLineToolsVersion = $Matches.Version
return $commandLineToolsVersion
}
2020-09-21 12:05:58 +03:00
function Get-AndroidBuildToolVersions {
2020-09-10 14:34:08 +03:00
param (
2020-09-21 12:05:58 +03:00
[Parameter(Mandatory)]
[object] $PackageInfo
2020-09-10 14:34:08 +03:00
)
2020-09-21 12:05:58 +03:00
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
$groupVersions = @()
$versions | ForEach-Object {
$majorVersion = $_.Split(".")[0]
$groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "<br>")
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
function Get-AndroidGoogleAPIsVersions {
2020-09-10 14:34:08 +03:00
param (
2020-09-21 12:05:58 +03:00
[Parameter(Mandatory)]
[object] $PackageInfo
2020-09-10 14:34:08 +03:00
)
2020-09-21 12:05:58 +03:00
$versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[0].split(";")[1]
2020-09-10 14:34:08 +03:00
}
2020-09-21 12:05:58 +03:00
return ($versions -Join "<br>")
2020-09-21 14:55:25 +03:00
}
2020-09-22 09:46:44 +03:00
function Get-AndroidNDKVersions {
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
$versions += Get-ChildItem -Path $ndkFolderPath -Name
2023-12-04 12:13:08 +01:00
$ndkDefaultVersion = (Get-ToolsetContent).android.ndk.default
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
return ($versions | ForEach-Object {
$defaultPostfix = ( $_ -eq $ndkDefaultFullVersion ) ? " (default)" : ""
$_ + $defaultPostfix
} | Join-String -Separator "<br>")
2020-12-09 00:13:20 +05:00
}