Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt app/src/main/java/solutions/tretter/githugandroid/levels/CoreLevels.kt
This commit is contained in:
@@ -11,8 +11,8 @@ android {
|
||||
applicationId = "solutions.tretter.githugandroid"
|
||||
minSdk = 26
|
||||
targetSdk = 34
|
||||
versionCode = 79
|
||||
versionName = "0.1.78"
|
||||
versionCode = 80
|
||||
versionName = "0.1.79"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
|
||||
@@ -185,12 +185,16 @@ class GitRepositoryRuntime(private val context: Context) {
|
||||
val userNameResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.name"))
|
||||
val userEmailResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.email"))
|
||||
val config = buildMap {
|
||||
userNameResult.outputLines.firstOrNull()?.takeIf { it.isNotBlank() }?.let { put("user.name", it) }
|
||||
userEmailResult.outputLines.firstOrNull()?.takeIf { it.isNotBlank() }?.let { put("user.email", it) }
|
||||
userNameResult.outputLines.firstOrNull()
|
||||
?.takeIf { userNameResult.exitCode == 0 && it.isNotBlank() }
|
||||
?.let { put("user.name", it) }
|
||||
userEmailResult.outputLines.firstOrNull()
|
||||
?.takeIf { userEmailResult.exitCode == 0 && it.isNotBlank() }
|
||||
?.let { put("user.email", it) }
|
||||
}
|
||||
AppLog.d(
|
||||
"GitRuntime",
|
||||
"inspectSandbox level=${level.id} config=$config user.name.exit=${userNameResult.exitCode} user.email.exit=${userEmailResult.exitCode}",
|
||||
"inspectSandbox level=${level.id} config=$config user.name.exit=${userNameResult.exitCode} user.name.output=${userNameResult.outputLines} user.email.exit=${userEmailResult.exitCode} user.email.output=${userEmailResult.outputLines}",
|
||||
)
|
||||
val commits = if (logResult.exitCode == 0) {
|
||||
logResult.outputLines.filter { it.isNotBlank() }.mapNotNull { line ->
|
||||
@@ -258,7 +262,7 @@ class GitRepositoryRuntime(private val context: Context) {
|
||||
|
||||
val output = process.inputStream.bufferedReader().readLines()
|
||||
val exit = process.waitFor()
|
||||
ProcessExecutionResult(exitCode = exit, outputLines = output.ifEmpty { if (exit == 0) emptyList() else listOf("Command failed") })
|
||||
ProcessExecutionResult(exitCode = exit, outputLines = output)
|
||||
} catch (error: Exception) {
|
||||
ProcessExecutionResult(exitCode = -1, outputLines = listOf("Native Git execution failed: ${error.message ?: error::class.java.simpleName}"))
|
||||
}
|
||||
|
||||
@@ -18,18 +18,18 @@ internal fun coreLevels(): List<Level> = listOf(
|
||||
commandSuggestions = listOf("git config user.name GitHug", "git config user.email githug@example.com"),
|
||||
setup = { RepoState(initialized = true, branches = mapOf("master" to 0)) },
|
||||
validator = repoPredicate { repo ->
|
||||
val hasUserName = repo.config.containsKey("user.name")
|
||||
val observedUserName = repo.config["user.name"]
|
||||
val observedUserName = repo.config["user.name"]?.takeIf { it.isNotBlank() }
|
||||
val hasUserName = observedUserName != null
|
||||
AppLog.d(
|
||||
"Validation",
|
||||
"Config rule key='user.name' expected=defined observed=${observedUserName ?: "<missing>"} passed=$hasUserName",
|
||||
"Config rule key='user.name' expected=defined-and-non-blank observed=${observedUserName ?: "<missing>"} passed=$hasUserName",
|
||||
)
|
||||
|
||||
val hasUserEmail = repo.config.containsKey("user.email")
|
||||
val observedUserEmail = repo.config["user.email"]
|
||||
val observedUserEmail = repo.config["user.email"]?.takeIf { it.isNotBlank() }
|
||||
val hasUserEmail = observedUserEmail != null
|
||||
AppLog.d(
|
||||
"Validation",
|
||||
"Config rule key='user.email' expected=defined observed=${observedUserEmail ?: "<missing>"} passed=$hasUserEmail",
|
||||
"Config rule key='user.email' expected=defined-and-non-blank observed=${observedUserEmail ?: "<missing>"} passed=$hasUserEmail",
|
||||
)
|
||||
|
||||
hasUserName && hasUserEmail
|
||||
|
||||
Reference in New Issue
Block a user