From 99b3cb4ce3b5c707e3f0df23d4f0662975e6fb96 Mon Sep 17 00:00:00 2001 From: stevenyomi <95685115+stevenyomi@users.noreply.github.com> Date: Thu, 6 Jul 2023 06:27:54 +0800 Subject: [PATCH] Clean up multisrc generate task (#17023) --- multisrc/build.gradle.kts | 49 ++++--------------- .../java/generator/ThemeSourceGenerator.kt | 13 +---- 2 files changed, 12 insertions(+), 50 deletions(-) diff --git a/multisrc/build.gradle.kts b/multisrc/build.gradle.kts index d2626806e..dbc098f91 100644 --- a/multisrc/build.gradle.kts +++ b/multisrc/build.gradle.kts @@ -1,6 +1,3 @@ -import java.io.BufferedReader -import java.io.InputStreamReader - plugins { id("com.android.library") kotlin("android") @@ -42,46 +39,20 @@ dependencies { } tasks { - val generateExtensions by registering { - doLast { - val isWindows = System.getProperty("os.name").toString().toLowerCase().contains("win") - var classPath = ( - configurations.compileOnly.get().asFileTree.toList() + - listOf( - configurations.androidApis.get().asFileTree.first().absolutePath, // android.jar path - "$projectDir/build/intermediates/aar_main_jar/debug/classes.jar" // jar made from this module - )) - .joinToString(if (isWindows) ";" else ":") + register<JavaExec>("generateExtensions") { + classpath = configurations.compileOnly.get() + + configurations.androidApis.get() + // android.jar path + files("$buildDir/intermediates/aar_main_jar/debug/classes.jar") // jar made from this module + mainClass.set("generator.GeneratorMainKt") - var javaPath = "${System.getProperty("java.home")}/bin/java" + workingDir = workingDir.parentFile // project root - val mainClass = "generator.GeneratorMainKt" // Main class we want to execute + errorOutput = System.out // for GitHub workflow commands - if (isWindows) { - classPath = classPath.replace("/", "\\") - javaPath = javaPath.replace("/", "\\") - } - - val javaProcess = ProcessBuilder() - .directory(null).command(javaPath, "-classpath", classPath, mainClass) - .redirectErrorStream(true).start() - - val inputStreamReader = InputStreamReader(javaProcess.inputStream) - val bufferedReader = BufferedReader(inputStreamReader) - - var s: String? - while (bufferedReader.readLine().also { s = it } != null) { - logger.info(s) - } - - bufferedReader.close() - inputStreamReader.close() - - val exitCode = javaProcess.waitFor() - if (exitCode != 0) { - throw Exception("Java process failed with exit code: $exitCode") - } + if (!logger.isInfoEnabled) { + standardOutput = org.gradle.internal.io.NullOutputStream.INSTANCE } + dependsOn("ktLint", "assembleDebug") } diff --git a/multisrc/src/main/java/generator/ThemeSourceGenerator.kt b/multisrc/src/main/java/generator/ThemeSourceGenerator.kt index 648323466..ba19d359a 100644 --- a/multisrc/src/main/java/generator/ThemeSourceGenerator.kt +++ b/multisrc/src/main/java/generator/ThemeSourceGenerator.kt @@ -132,9 +132,9 @@ interface ThemeSourceGenerator { File(projectRootPath).let { projectRootFile -> println("Generating $source") - projectRootFile.mkdirs() // remove everything from past runs - cleanDirectory(projectRootFile) + projectRootFile.deleteRecursively() + projectRootFile.mkdirs() writeGradle(projectGradleFile, source, themePkg, baseVersionCode, defaultAdditionalGradlePath, additionalGradleOverridePath) writeAndroidManifest(projectAndroidManifestFile, manifestOverridePath, defaultAndroidManifestPath) @@ -232,15 +232,6 @@ interface ThemeSourceGenerator { """.trimMargin(), ) } - - private fun cleanDirectory(dir: File) { - dir.listFiles()?.forEach { - if (it.isDirectory) { - cleanDirectory(it) - } - it.delete() - } - } } }