fun process()

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
            )
        }
    }