in code/codegen/src/main/kotlin/com/android/gradle/replicator/resgen/Main.kt [48:119]
fun process(args: Array<String>) {
val parser = ArgsParser()
val androidOutputFolderOption = parser.option(longName = "androidOutput", shortName = "ao", argc = 1)
val javaOutputFolderOption = parser.option(longName = "javaOutput", shortName = "jo", argc = 1)
val assetOutputFolderOption = parser.option(longName = "assetOutput", shortName = "so", argc = 1)
val resJsonOption = parser.option(longName = "resJson", shortName = "rj", argc = 1)
val resgenConstantsFile = parser.option(longName = "generationProperties", shortName = "gp", argc = 1)
val seedOption = parser.option(longName = "seed", shortName = "s", argc = 1)
parser.parseArgs(args)
val argumentsBuilder = ResourceGenerationParameters.Builder()
resJsonOption.orNull?.first?.let { path ->
File(path).let {
if (!it.exists()) {
throw FileNotFoundException(it.toString())
}
val metadata = loadModuleMetadata(it)
argumentsBuilder.setAndroidResourcesMap(metadata.androidResources)
argumentsBuilder.setJavaResourcesMap(metadata.javaResources)
argumentsBuilder.setAssetsMap(metadata.assets)
}
}
seedOption.orNull?.first?.let {
argumentsBuilder.setSeed(it.toInt())
}
val androidOutputFolder = File(checkNotNull(androidOutputFolderOption.orNull?.first))
androidOutputFolder.deleteRecursively()
androidOutputFolder.mkdirs()
println("Generating android resources in $androidOutputFolder")
val javaOutputFolder = File(checkNotNull(javaOutputFolderOption.orNull?.first))
javaOutputFolder.deleteRecursively()
javaOutputFolder.mkdirs()
println("Generating java resources in $javaOutputFolder")
val assetOutputFolder = File(checkNotNull(assetOutputFolderOption.orNull?.first))
assetOutputFolder.deleteRecursively()
assetOutputFolder.mkdirs()
println("Generating java resources in $assetOutputFolder")
val arguments = argumentsBuilder.build()
val resgenConstants = ResgenConstants(resgenConstantsFile.orNull?.first?.let { File(it) })
if (countResources(arguments.androidResourcesMap) > 0) {
generateAndroidResources(
arguments.androidResourcesMap,
arguments,
androidOutputFolder,
resgenConstants
)
}
if (countFilesWithSizeMetadata(arguments.javaResourcesMap) > 0) {
generateJavaResources(
arguments.javaResourcesMap,
arguments,
javaOutputFolder
)
}
if (countFilesWithSizeMetadata(arguments.assetsMap) > 0) {
generateAssets(
arguments.assetsMap,
arguments,
assetOutputFolder
)
}
}