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/GitHelpCommands.kt app/src/main/java/solutions/tretter/githugandroid/GitHugApp.kt app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt app/src/main/java/solutions/tretter/githugandroid/ManPageDialog.kt app/src/test/java/solutions/tretter/githugandroid/GitHelpCommandsTest.kt
This commit is contained in:
@@ -85,9 +85,26 @@ class GitRepositoryRuntime(private val context: Context) {
|
||||
add(" selected ABI: ${Build.SUPPORTED_ABIS.firstOrNull() ?: "unknown"}")
|
||||
add(" helper commands: ls, pwd, cat, touch, mkdir, rm, echo")
|
||||
add(" visual editors: vi, nano, emacs, ed, ex")
|
||||
add(" git help <command>")
|
||||
}
|
||||
}
|
||||
|
||||
fun gitManPage(level: Level, currentRepo: RepoState, topic: String): String {
|
||||
val nativeGit = nativeGitBinary()
|
||||
if (nativeGit == null) {
|
||||
return fallbackManPage(topic)
|
||||
}
|
||||
|
||||
val sandboxRoot = sandboxDir(level).canonicalFile
|
||||
val workingDir = File(sandboxRoot, currentRepo.currentDir).canonicalFile
|
||||
.takeIf { it.path.startsWith(sandboxRoot.path) } ?: sandboxRoot
|
||||
val result = runGit(nativeGit, workingDir, listOf(topic, "-h"))
|
||||
return result.outputLines
|
||||
.filterNot { it.contains("no man viewer", ignoreCase = true) }
|
||||
.joinToString("\n")
|
||||
.ifBlank { fallbackManPage(topic) }
|
||||
}
|
||||
|
||||
fun readEditorFile(level: Level, currentRepo: RepoState, path: String): Pair<String, List<String>> {
|
||||
val nativeGit = nativeGitBinary()
|
||||
if (nativeGit == null) {
|
||||
@@ -198,6 +215,80 @@ class GitRepositoryRuntime(private val context: Context) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun fallbackManPage(topic: String): String {
|
||||
val body = when (topic) {
|
||||
"tag" -> """
|
||||
NAME
|
||||
git-tag - Create, list, delete or verify a tag object
|
||||
|
||||
SYNOPSIS
|
||||
git tag <tagname>
|
||||
git tag -d <tagname>
|
||||
git tag
|
||||
|
||||
DESCRIPTION
|
||||
Tags name specific points in history. In GitHug Android,
|
||||
tag levels usually expect you to create or reference a tag
|
||||
by name.
|
||||
|
||||
EXAMPLES
|
||||
git tag new_tag
|
||||
git tag v1.2
|
||||
""".trimIndent()
|
||||
"branch" -> """
|
||||
NAME
|
||||
git-branch - List, create, or delete branches
|
||||
|
||||
SYNOPSIS
|
||||
git branch <branchname>
|
||||
git branch -d <branchname>
|
||||
|
||||
EXAMPLES
|
||||
git branch test_code
|
||||
git branch -d delete_me
|
||||
""".trimIndent()
|
||||
"checkout" -> """
|
||||
NAME
|
||||
git-checkout - Switch branches or restore files
|
||||
|
||||
SYNOPSIS
|
||||
git checkout <branch>
|
||||
git checkout -b <branch>
|
||||
git checkout -- <file>
|
||||
|
||||
EXAMPLES
|
||||
git checkout -b my_branch
|
||||
git checkout -- config.rb
|
||||
""".trimIndent()
|
||||
"add" -> """
|
||||
NAME
|
||||
git-add - Add file contents to the index
|
||||
|
||||
SYNOPSIS
|
||||
git add <path>
|
||||
git add .
|
||||
git add -p <path>
|
||||
""".trimIndent()
|
||||
"commit" -> """
|
||||
NAME
|
||||
git-commit - Record changes to the repository
|
||||
|
||||
SYNOPSIS
|
||||
git commit -m <message>
|
||||
git commit --amend
|
||||
""".trimIndent()
|
||||
else -> """
|
||||
NAME
|
||||
git-$topic
|
||||
|
||||
DESCRIPTION
|
||||
No bundled fallback manpage is available for git $topic.
|
||||
Try the command suggestions or use git help for another command.
|
||||
""".trimIndent()
|
||||
}
|
||||
return body
|
||||
}
|
||||
|
||||
private fun materializeNativeGitState(nativeGit: File, sandbox: File, desired: RepoState) {
|
||||
desired.config.forEach { (key, value) ->
|
||||
runGit(nativeGit, sandbox, listOf("config", key, value))
|
||||
|
||||
Reference in New Issue
Block a user