From 0c579473bbf6627848cc598095512d5035078226 Mon Sep 17 00:00:00 2001 From: bogadana <30848157+bogadana@users.noreply.github.com> Date: Mon, 25 Jul 2022 20:31:07 +0200 Subject: [PATCH] docs: better structuring (#230) --- README-template.md | 8 +-- .../app/revanced/meta/readme/Extensions.kt | 11 ++++ .../app/revanced/meta/readme/Generator.kt | 60 +++++++++++-------- 3 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 src/main/kotlin/app/revanced/meta/readme/Extensions.kt diff --git a/README-template.md b/README-template.md index 78e03b99f..1f988237c 100644 --- a/README-template.md +++ b/README-template.md @@ -1,9 +1,7 @@ -# ReVanced Patches +# 🧩 ReVanced Patches -🧩 Official patches by ReVanced +Official patches by ReVanced -# List of available patches +## 📜 List of available patches -| 💊 Patch | 📜 Description | 🎯 Target Package | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:|:-----------------:| {{ table }} diff --git a/src/main/kotlin/app/revanced/meta/readme/Extensions.kt b/src/main/kotlin/app/revanced/meta/readme/Extensions.kt new file mode 100644 index 000000000..d767f7ad4 --- /dev/null +++ b/src/main/kotlin/app/revanced/meta/readme/Extensions.kt @@ -0,0 +1,11 @@ +package app.revanced.meta.readme + +import app.revanced.patcher.data.Data +import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages +import app.revanced.patcher.patch.Patch + +internal fun Class>.getLatestVersion(): SemanticVersion? = + this.compatiblePackages?.first()?.versions?.map { SemanticVersion.fromString(it) } + ?.maxWithOrNull( + SemanticVersionComparator + ) diff --git a/src/main/kotlin/app/revanced/meta/readme/Generator.kt b/src/main/kotlin/app/revanced/meta/readme/Generator.kt index 5bfadb69a..0a69f2b4f 100644 --- a/src/main/kotlin/app/revanced/meta/readme/Generator.kt +++ b/src/main/kotlin/app/revanced/meta/readme/Generator.kt @@ -1,41 +1,51 @@ package app.revanced.meta.readme +import app.revanced.patcher.data.Data import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages import app.revanced.patcher.extensions.PatchExtensions.description import app.revanced.patcher.extensions.PatchExtensions.patchName +import app.revanced.patcher.patch.Patch import app.revanced.patcher.util.patch.implementation.JarPatchBundle import java.io.File -class Generator { - companion object { - @JvmStatic - fun main(args: Array) { - val buildDir = File("build/libs/") - val buildJar = - buildDir.listFiles()?.first { it.name.startsWith("revanced-patches-") && it.name.endsWith(".jar") }!! +object Generator { + private const val TABLE_HEADER = + "| \uD83D\uDC8A Patch | \uD83D\uDCDC Description | \uD83C\uDFF9 Target Version |\n" + + "|:--------:|:--------------:|:-----------------:|" - val bundle = JarPatchBundle(buildJar.absolutePath).loadPatches() + @JvmStatic + fun main(args: Array) { + val buildDir = File("build/libs/") + val buildJar = + buildDir.listFiles()?.first { it.name.startsWith("revanced-patches-") && it.name.endsWith(".jar") }!! - val patches = StringBuilder() + val bundle = JarPatchBundle(buildJar.absolutePath).loadPatches() - for (patch in bundle) { - val patchName = patch.patchName - val compatiblePackage = patch.compatiblePackages?.first() - val latestVersion = - compatiblePackage?.versions?.map { SemanticVersion.fromString(it) }?.maxWithOrNull( - SemanticVersionComparator - ) ?: "all" + val output = StringBuilder() - patches.appendLine("| `$patchName` | ${patch.description} | `${compatiblePackage?.name}` | $latestVersion |") - } + val packages = mutableMapOf>>>() - val readMeTemplateFile = File("README-template.md") - val readmeTemplate = Template(readMeTemplateFile.readText()) - - readmeTemplate.replaceVariable("table", patches.toString()) - - val readme = File("README.md") - readme.writeText(readmeTemplate.toString()) + bundle.map { + val packageName = it.compatiblePackages?.first()?.name!! + packages.getOrElse(packageName) { packages.put(packageName, mutableListOf()) }?.add(it) } + + for (pkg in packages) { + output.appendLine("### \uD83D\uDCE6 `${pkg.key}`") + output.appendLine("
\n") + + output.appendLine(TABLE_HEADER) + pkg.value.forEach { output.appendLine("| `${it.patchName}` | ${it.description} | ${it.getLatestVersion() ?: "all"} |") } + + output.appendLine("
\n") + } + + val readMeTemplateFile = File("README-template.md") + val readmeTemplate = Template(readMeTemplateFile.readText()) + + readmeTemplate.replaceVariable("table", output.toString()) + + val readme = File("README.md") + readme.writeText(readmeTemplate.toString()) } }