Improved documentation for Android

This commit is contained in:
Nikita Bykov
2020-09-14 11:01:14 +03:00
parent ffc156448e
commit 1f73b64e5c
2 changed files with 129 additions and 101 deletions

View File

@@ -1,3 +1,10 @@
function Split-TableRowByColumns {
param(
[string] $Row
)
return $Row.Split("|") | ForEach-Object { $_.trim() }
}
function Get-AndroidComponentLocation { function Get-AndroidComponentLocation {
param( param(
[string] $ComponentName [string] $ComponentName
@@ -6,22 +13,12 @@ function Get-AndroidComponentLocation {
return "Location $path" return "Location $path"
} }
function Split-AndroidSDKOutputRow { function Get-AndroidSDKRoot {
param( param(
[string] $Row [string] $ComponentName
) )
return $Row.Split("|").Trim() $path = Join-Path $env:ANDROID_HOME $ComponentName
} return "Location $path"
function Create-AndroidTableObject {
param(
[string] $PackageName,
[string] $Description
)
return [PSCustomObject] @{
"Package Name" = $PackageName
"Description" = $Description
}
} }
function Get-AndroidSDKManagerPath { function Get-AndroidSDKManagerPath {
@@ -42,68 +39,123 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages return $androidInstalledPackages
} }
function Build-AndroidSDKToolsTable {
param (
[Parameter(Mandatory)]
[object] $packageInfo
)
return $packageInfo | ForEach-Object { function Build-AndroidTable {
$packageInfoParts = Split-AndroidSDKOutputRow $_ $packageInfo = Get-AndroidInstalledPackages
$packageName = $packageInfoParts[0] return @(
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1] @{
Create-AndroidTableObject -PackageName $packageName -Description $packageDescription "Package" = "Android SDK Tools"
} "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
} },
@{
function Build-AndroidSDKPlatformTable { "Package" = "Android SDK Platforms"
param ( "Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
[Parameter(Mandatory)] "Location" = Get-AndroidComponentLocation -ComponentName "platforms"
[object] $packageInfo },
) @{
"Package" = "Android SDK Build-tools"
return $packageInfo | ForEach-Object { "Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
$packageInfoParts = Split-AndroidSDKOutputRow $_ "Location" = Get-AndroidComponentLocation -ComponentName "build-tools"
$packageName = $packageInfoParts[0].split(";")[1] },
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1] @{
return Create-AndroidTableObject -PackageName $packageName -Description $packageDescription "Package" = "Android SDK Platform-Tools"
} "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
} },
@{
function Build-AndroidSDKBuildToolsTable { "Package" = "Google APIs"
param ( "Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
[Parameter(Mandatory)] },
[object] $packageInfo @{
) "Package" = "Android Support Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
return $packageInfo | ForEach-Object { },
$packageInfoParts = Split-AndroidSDKOutputRow $_ @{
$packageName = $packageInfoParts[0].replace(";", "-") "Package" = "Google Play services"
$packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1] "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
return Create-AndroidTableObject -PackageName $packageName -Description $packageDescription },
} @{
} "Package" = "Google Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
function Build-AndroidExtraPackagesTable { },
param ( @{
[Parameter(Mandatory)][AllowEmptyString()] "Package" = "SDK Patch Applier v4"
[string[]] $installedPackages "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
) },
@{
$extraPackages = @( "Package" = "CMake"
"Android Support Repository", "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
"Google Play services", },
"Google Repository", @{
"ndk-bundle" "Package" = "NDK"
) "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "ndk-bundle"
}
return $extraPackages | ForEach-Object { ) | Where-Object { $_.Version } | ForEach-Object {
$packageId = $_ [PSCustomObject] @{
$packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1 "Package Name" = $_.Package
$packageInfoParts = Split-AndroidSDKOutputRow $packageInfo "Version" = $_.Version
return [PSCustomObject] @{ "Location" = $_.Location
"Package Name" = $packageInfoParts[2]
"Version" = $packageInfoParts[1]
} }
} }
}
function Get-AndroidPackageVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo,
[Parameter(Mandatory)]
[object] $MatchedString
)
$versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
}
return ($versions -Join "<br>")
}
function Get-AndroidPlatformVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
$revision = $packageInfoParts[1]
$version = $packageInfoParts[0].split(";")[1]
return "$version, (rev $revision)"
}
[array]::Reverse($versions)
return ($versions -Join "<br>")
}
function Get-AndroidBuildToolVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
}
$groupVersions = @()
$versions | ForEach-Object {
$majorVersion = $_.Split(".")[0]
$groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
}
return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "<br>")
}
function Get-AndroidGoogleAPIsVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[0].split(";")[1]
}
return ($versions -Join "<br>")
} }

View File

@@ -227,32 +227,8 @@ $markdown += Get-PowerShellModules | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
# Android section # Android section
$androidInstalledPackages = Get-AndroidInstalledPackages $markdown += New-MDHeader "Android" -Level 3
$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDHeader "Android SDK Tools" -Level 3
$androidSDKTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Tools" -or $_ -Match "Android SDK Platform-Tools" }
$markdown += Build-AndroidSDKToolsTable $androidSDKTools | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
$markdown += New-MDHeader "Android SDK Platforms" -Level 3
$androidSDKPlatforms = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform " }
$markdown += New-MDInlineCode -Text (Get-AndroidComponentLocation -ComponentName "platforms")
$markdown += New-MDNewLine
$markdown += Build-AndroidSDKPlatformTable $androidSDKPlatforms | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android SDK Build-Tools" -Level 3
$androidSDKBuildTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Build-Tools" }
$markdown += New-MDInlineCode -Text (Get-AndroidComponentLocation -ComponentName "build-tools")
$markdown += New-MDNewLine
$markdown += Build-AndroidSDKBuildtoolsTable $androidSDKBuildTools | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android Extra Packages" -Level 3
$markdown += Build-AndroidExtraPackagesTable $androidInstalledPackages | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Cached Docker images" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(Get-CachedDockerImages)
$markdown | Out-File -FilePath "C:\InstalledSoftware.md" $markdown | Out-File -FilePath "C:\InstalledSoftware.md"