fun parsePropertyFile()

in code/codegen/src/main/kotlin/com/android/gradle/replicator/parsing/ArgsParser.kt [109:135]


    fun parsePropertyFile(propertyFile: File) {
        val arguments = FileReader(propertyFile).use {
            Properties().also { properties -> properties.load(it) }
        }

        arguments.forEach { arg ->
            // Ignore invalid args
            if (argsFileOpts.containsKey(arg.key)) {
                val currentOption = argsFileOpts[arg.key]!!

                // Override command line options
                if (currentOption.isPresent) {
                    currentOption.argv.clear()
                }
                arg.value?.toString()?.split(",")?.let {
                    currentOption.argv.addAll(it)
                }
                currentOption.isPresent = true
            }
        }
        // Post-parse sanity check
        argsFileOpts.forEach { opt ->
            if (opt.value.isPresent && opt.value.argc != UNLIMITED_ARGC && opt.value.argv.size != opt.value.argc) {
                throw java.lang.IllegalArgumentException("wrong # of args for ${opt.key}. Expected ${opt.value.argc} but got ${opt.value.argv.size}")
            }
        }
    }