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"
|
applicationId = "solutions.tretter.githugandroid"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 79
|
versionCode = 80
|
||||||
versionName = "0.1.78"
|
versionName = "0.1.79"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|||||||
@@ -185,12 +185,16 @@ class GitRepositoryRuntime(private val context: Context) {
|
|||||||
val userNameResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.name"))
|
val userNameResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.name"))
|
||||||
val userEmailResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.email"))
|
val userEmailResult = runGit(nativeGit, sandbox, listOf("config", "--get", "user.email"))
|
||||||
val config = buildMap {
|
val config = buildMap {
|
||||||
userNameResult.outputLines.firstOrNull()?.takeIf { it.isNotBlank() }?.let { put("user.name", it) }
|
userNameResult.outputLines.firstOrNull()
|
||||||
userEmailResult.outputLines.firstOrNull()?.takeIf { it.isNotBlank() }?.let { put("user.email", it) }
|
?.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(
|
AppLog.d(
|
||||||
"GitRuntime",
|
"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) {
|
val commits = if (logResult.exitCode == 0) {
|
||||||
logResult.outputLines.filter { it.isNotBlank() }.mapNotNull { line ->
|
logResult.outputLines.filter { it.isNotBlank() }.mapNotNull { line ->
|
||||||
@@ -258,7 +262,7 @@ class GitRepositoryRuntime(private val context: Context) {
|
|||||||
|
|
||||||
val output = process.inputStream.bufferedReader().readLines()
|
val output = process.inputStream.bufferedReader().readLines()
|
||||||
val exit = process.waitFor()
|
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) {
|
} catch (error: Exception) {
|
||||||
ProcessExecutionResult(exitCode = -1, outputLines = listOf("Native Git execution failed: ${error.message ?: error::class.java.simpleName}"))
|
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"),
|
commandSuggestions = listOf("git config user.name GitHug", "git config user.email githug@example.com"),
|
||||||
setup = { RepoState(initialized = true, branches = mapOf("master" to 0)) },
|
setup = { RepoState(initialized = true, branches = mapOf("master" to 0)) },
|
||||||
validator = repoPredicate { repo ->
|
validator = repoPredicate { repo ->
|
||||||
val hasUserName = repo.config.containsKey("user.name")
|
val observedUserName = repo.config["user.name"]?.takeIf { it.isNotBlank() }
|
||||||
val observedUserName = repo.config["user.name"]
|
val hasUserName = observedUserName != null
|
||||||
AppLog.d(
|
AppLog.d(
|
||||||
"Validation",
|
"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"]?.takeIf { it.isNotBlank() }
|
||||||
val observedUserEmail = repo.config["user.email"]
|
val hasUserEmail = observedUserEmail != null
|
||||||
AppLog.d(
|
AppLog.d(
|
||||||
"Validation",
|
"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
|
hasUserName && hasUserEmail
|
||||||
|
|||||||
Reference in New Issue
Block a user