Auto-commit after successful build: update app gameplay/UI, improve build setup, update docs/config

Changed files:\nREADME.md
app/build.gradle.kts
app/src/main/java/com/kawomi/githugandroid/GameModels.kt
app/src/main/java/com/kawomi/githugandroid/GitHugApp.kt
app/src/main/java/com/kawomi/githugandroid/GitRuntime.kt
This commit is contained in:
Joe Tretter
2026-04-22 15:36:34 -05:00
parent 44bd87d536
commit 849e9b6052
5 changed files with 300 additions and 56 deletions

View File

@@ -164,6 +164,51 @@ object GitSandboxEngine {
}
}
fun tokenizeCommand(command: String): List<String> {
val result = mutableListOf<String>()
val current = StringBuilder()
var quoteChar: Char? = null
var escaping = false
command.forEach { char ->
when {
escaping -> {
current.append(char)
escaping = false
}
char == '\\' && quoteChar != '\'' -> {
escaping = true
}
quoteChar != null -> {
if (char == quoteChar) {
quoteChar = null
} else {
current.append(char)
}
}
char == '"' || char == '\'' -> {
quoteChar = char
}
char.isWhitespace() -> {
if (current.isNotEmpty()) {
result += current.toString()
current.clear()
}
}
else -> current.append(char)
}
}
if (escaping) {
current.append('\\')
}
if (current.isNotEmpty()) {
result += current.toString()
}
return result
}
private fun commit(repo: RepoState, arguments: List<String>): Pair<RepoState, List<String>> {
val parsed = parseCommitArguments(arguments)
if (parsed.error != null) {
@@ -269,51 +314,6 @@ object GitSandboxEngine {
}
}
private fun tokenizeCommand(command: String): List<String> {
val result = mutableListOf<String>()
val current = StringBuilder()
var quoteChar: Char? = null
var escaping = false
command.forEach { char ->
when {
escaping -> {
current.append(char)
escaping = false
}
char == '\\' && quoteChar != '\'' -> {
escaping = true
}
quoteChar != null -> {
if (char == quoteChar) {
quoteChar = null
} else {
current.append(char)
}
}
char == '"' || char == '\'' -> {
quoteChar = char
}
char.isWhitespace() -> {
if (current.isNotEmpty()) {
result += current.toString()
current.clear()
}
}
else -> current.append(char)
}
}
if (escaping) {
current.append('\\')
}
if (current.isNotEmpty()) {
result += current.toString()
}
return result
}
private data class ParsedCommitArguments(
val message: String? = null,
val stageAllTracked: Boolean = false,