revanced-patches/src/main/kotlin/app/revanced/generator/JsonPatchesFileGenerator.kt

50 lines
1.4 KiB
Kotlin
Raw Normal View History

2024-02-15 04:38:06 +01:00
package app.revanced.generator
import app.revanced.patcher.PatchSet
import app.revanced.patcher.patch.Patch
import com.google.gson.GsonBuilder
import java.io.File
2024-02-15 04:38:06 +01:00
internal class JsonPatchesFileGenerator : PatchesFileGenerator {
override fun generate(patches: PatchSet) = patches.map {
JsonPatch(
it.name!!,
it.description,
it.compatiblePackages,
it.use,
it.requiresIntegrations,
it.options.values.map { option ->
2023-10-22 23:31:50 +02:00
JsonPatch.Option(
option.key,
option.default,
option.values,
option.title,
option.description,
2024-02-15 04:38:06 +01:00
option.required,
2023-10-22 23:31:50 +02:00
)
2024-02-15 04:38:06 +01:00
},
)
}.let {
File("patches.json").writeText(GsonBuilder().serializeNulls().create().toJson(it))
}
@Suppress("unused")
private class JsonPatch(
val name: String? = null,
val description: String? = null,
val compatiblePackages: Set<Patch.CompatiblePackage>? = null,
val use: Boolean = true,
val requiresIntegrations: Boolean = false,
2024-02-15 04:38:06 +01:00
val options: List<Option>,
) {
class Option(
val key: String,
val default: Any?,
2023-10-22 23:31:50 +02:00
val values: Map<String, Any?>?,
val title: String?,
val description: String?,
val required: Boolean,
)
}
2024-02-15 04:38:06 +01:00
}