fun readUpdatePairsFromFile()

in bunch-cli/src/main/kotlin/org/jetbrains/bunches/bunchFile.kt [67:88]


fun readUpdatePairsFromFile(path: String): Result<UpdateInfo> {
    val file = File(path, BUNCH_FILE_NAME)
    if (!file.exists()) {
        return Result.error("File '${file.canonicalPath}' doesn't exist.")
    }

    val lines = file.readLines().map { it.trim() }.filter { it.isNotEmpty() }

    val currentBranchSuffix = lines.firstOrNull()
    if (currentBranchSuffix == null) {
        return Result.error("First line in '${file.canonicalPath}' should contain current branch name")
    }

    val rules = ArrayList<List<String>>()

    val branchRules = lines.drop(1)
    for (branchRule in branchRules) {
        rules.add((branchRule + "_$currentBranchSuffix").split("_").reversed())
    }

    return Result.success(UpdateInfo(currentBranchSuffix, rules))
}