in bunch-cli/src/main/kotlin/org/jetbrains/bunches/switch.kt [99:134]
fun doSwitch(settings: Settings) {
uncommittedChanges(settings.repoPath).checkAndExitIfNeeded {
exitWithError("Can not do switch with uncommitted changes.")
}
checkLastCommitsNotContainSwitches(settings.repoPath)
val parameterRuleStr = settings.rule
val rule = if (parameterRuleStr.contains('_')) {
parameterRuleStr
} else {
// Short rule format with destination bunch only
readRuleFromFile(parameterRuleStr, settings.bunchPath)
}
val suffixes = rule.split("_")
if (suffixes.isEmpty()) {
exitWithError("Don't know how to switch to `$parameterRuleStr`")
}
if (suffixes.size != 1) {
if (settings.step) {
doStepByStepSwitch(suffixes, settings.repoPath, settings.commitTitle)
} else {
doOneStepSwitch(suffixes, settings.repoPath, settings.commitTitle)
}
}
if (settings.doCleanup) {
cleanup(
org.jetbrains.bunches.cleanup.Settings(
settings.repoPath, settings.bunchPath, extension = null, commitTitle = RESTORE_CLEANUP_COMMIT_TITLE, isNoCommit = false
)
)
}
}