in code/codegen/src/main/kotlin/com/android/gradle/replicator/codegen/Main.kt [32:109]
fun process(args: Array<String>) {
val parser = ArgsParser()
val pathToArgumentsFileOption = parser.option(longName = "argsFile", shortName = "i", argc = 1)
val outputFolderOption = parser.option(longName = "outputFolder", shortName = "o", argc = 1)
val moduleOption = parser.option(longName = "module", shortName = "m", argc = 1)
val implClasspathElementOption = parser.option(
longName = "implClassPath",
shortName = "cp",
propertyName = "implClasspath",
argc = ArgsParser.UNLIMITED_ARGC)
val apiOption = parser.option(
longName = "apiClassPath",
shortName = "api",
propertyName = "apiClasspath",
argc = ArgsParser.UNLIMITED_ARGC)
val codeGenModuleApiClasspathOption = parser.option(
propertyName = "codeGeneratedModuleApiClasspath",
argc = ArgsParser.UNLIMITED_ARGC)
val codeGenModuleImplClasspathOption = parser.option(
propertyName = "codeGeneratedModuleImplClasspath",
argc = ArgsParser.UNLIMITED_ARGC)
val runtimeClasspathOption = parser.option(propertyName = "runtimeClasspath", argc = ArgsParser.UNLIMITED_ARGC)
val seedOption = parser.option(longName = "seed", shortName = "s", propertyName = "seed", argc = 1)
val nbOfJavaFilesOption = parser.option(propertyName = "nbOfJavaFiles", argc = 1)
val nbOfKotlinFilesOption = parser.option(propertyName = "nbOfKotlinFiles", argc = 1)
parser.parseArgs(args)
val parametersBuilder = CodeGenerationParameters.Builder()
val pathToArgumentsFile = pathToArgumentsFileOption.orNull?.first
if (pathToArgumentsFile!=null
&& File(pathToArgumentsFile).exists()) {
parser.parsePropertyFile(File(pathToArgumentsFile))
}
buildParameters(
parametersBuilder,
apiOption.orNull?.argv,
implClasspathElementOption.orNull?.argv,
codeGenModuleApiClasspathOption.orNull?.argv,
codeGenModuleImplClasspathOption.orNull?.argv,
runtimeClasspathOption.orNull?.argv,
seedOption.orNull?.first,
nbOfJavaFilesOption.orNull?.first,
nbOfKotlinFilesOption.orNull?.first
)
val kotlinGenerator: GeneratorType = GeneratorType.Kotlin
val javaGenerator = GeneratorType.Java
val outputFolder = File(checkNotNull(outputFolderOption.orNull?.first))
outputFolder.deleteRecursively()
outputFolder.mkdirs()
println("Generating in $outputFolder")
val arguments = parametersBuilder.build()
val moduleName = moduleOption.orNull?.first ?: "module"
if (arguments.numberOfJavaSources > 0) {
generateSources(
arguments.numberOfJavaSources,
javaGenerator,
arguments,
moduleName,
outputFolder
)
}
if (arguments.numberOfKotlinSources > 0) {
generateSources(
arguments.numberOfKotlinSources,
kotlinGenerator,
arguments,
moduleName,
outputFolder
)
}
}