mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-11-22 16:20:19 +01:00
Halfway through making everything async...
This commit is contained in:
parent
ad8d8f50d1
commit
19fcad2920
6 changed files with 18 additions and 16 deletions
|
@ -45,7 +45,7 @@ func update():
|
||||||
clear()
|
clear()
|
||||||
|
|
||||||
# Files in the working directory.
|
# Files in the working directory.
|
||||||
var wd_files = Array(repository.shell.run("find . -type f -not -path '*/\\.git/*'").split("\n"))
|
var wd_files = Array((await repository.shell.run("find . -type f -not -path '*/\\.git/*'")).split("\n"))
|
||||||
# The last entry is an empty string, remove it.
|
# The last entry is an empty string, remove it.
|
||||||
wd_files.pop_back()
|
wd_files.pop_back()
|
||||||
wd_files = helpers.map(wd_files, self, "substr2")
|
wd_files = helpers.map(wd_files, self, "substr2")
|
||||||
|
|
|
@ -44,14 +44,15 @@ func _ready():
|
||||||
# print(cmd)
|
# print(cmd)
|
||||||
# helpers.crash(":)")
|
# helpers.crash(":)")
|
||||||
|
|
||||||
if global_shell.run("command -v git &>/dev/null && echo yes || echo no") == "no\n":
|
if false:
|
||||||
game.skipped_title = true
|
if global_shell.run("command -v git &>/dev/null && echo yes || echo no") == "no\n":
|
||||||
get_tree().change_scene_to_file("res://scenes/no_git.tscn")
|
game.skipped_title = true
|
||||||
else:
|
get_tree().change_scene_to_file("res://scenes/no_git.tscn")
|
||||||
create_file_in_game_env(".gitconfig", helpers.read_file("res://scripts/gitconfig"))
|
else:
|
||||||
|
create_file_in_game_env(".gitconfig", helpers.read_file("res://scripts/gitconfig"))
|
||||||
|
|
||||||
copy_script_to_game_env("fake-editor")
|
copy_script_to_game_env("fake-editor")
|
||||||
copy_script_to_game_env("hint")
|
copy_script_to_game_env("hint")
|
||||||
|
|
||||||
func start_remote_shell():
|
func start_remote_shell():
|
||||||
var user_dir = ProjectSettings.globalize_path("user://")
|
var user_dir = ProjectSettings.globalize_path("user://")
|
||||||
|
|
|
@ -102,8 +102,8 @@ func careful_delete(path_inside):
|
||||||
if path_inside.substr(0,expected_prefix.length()) != expected_prefix:
|
if path_inside.substr(0,expected_prefix.length()) != expected_prefix:
|
||||||
helpers.crash("Refusing to delete directory %s that does not start with %s" % [path_inside, expected_prefix])
|
helpers.crash("Refusing to delete directory %s that does not start with %s" % [path_inside, expected_prefix])
|
||||||
else:
|
else:
|
||||||
game.global_shell.cd(game.tmp_prefix)
|
await game.global_shell.cd(game.tmp_prefix)
|
||||||
game.global_shell.run("rm -rf '%s'" % path_inside)
|
await game.global_shell.run("rm -rf '%s'" % path_inside)
|
||||||
|
|
||||||
func parse(file):
|
func parse(file):
|
||||||
var text = read_file(file)
|
var text = read_file(file)
|
||||||
|
|
|
@ -49,7 +49,7 @@ func _unhandled_input(event):
|
||||||
nodes.scale += Vector2(0.05, 0.05)
|
nodes.scale += Vector2(0.05, 0.05)
|
||||||
|
|
||||||
func there_is_a_git():
|
func there_is_a_git():
|
||||||
return shell.run("test -d .git && echo yes || echo no") == "yes\n"
|
return await shell.run("test -d .git && echo yes || echo no") == "yes\n"
|
||||||
|
|
||||||
func update_everything():
|
func update_everything():
|
||||||
there_is_a_git_cache = there_is_a_git()
|
there_is_a_git_cache = there_is_a_git()
|
||||||
|
@ -140,7 +140,7 @@ func update_objects():
|
||||||
|
|
||||||
func update_node_positions():
|
func update_node_positions():
|
||||||
if there_is_a_git_cache:
|
if there_is_a_git_cache:
|
||||||
var graph_text = shell.run("git log --graph --oneline --all --no-abbrev")
|
var graph_text = await shell.run("git log --graph --oneline --all --no-abbrev")
|
||||||
var graph_lines = Array(graph_text.split("\n"))
|
var graph_lines = Array(graph_text.split("\n"))
|
||||||
graph_lines.pop_back()
|
graph_lines.pop_back()
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ func find_position(n):
|
||||||
return n.position
|
return n.position
|
||||||
|
|
||||||
func git(args, splitlines = false):
|
func git(args, splitlines = false):
|
||||||
var o = shell.run("git --no-replace-objects " + args)
|
var o = await shell.run("git --no-replace-objects " + args)
|
||||||
|
|
||||||
if splitlines:
|
if splitlines:
|
||||||
o = o.split("\n")
|
o = o.split("\n")
|
||||||
|
|
|
@ -25,6 +25,7 @@ func run(command, crash_on_fail=true):
|
||||||
shell_command.crash_on_fail = crash_on_fail
|
shell_command.crash_on_fail = crash_on_fail
|
||||||
|
|
||||||
run_async_thread(shell_command)
|
run_async_thread(shell_command)
|
||||||
|
await shell_command.done
|
||||||
exit_code = shell_command.exit_code
|
exit_code = shell_command.exit_code
|
||||||
return shell_command.output
|
return shell_command.output
|
||||||
|
|
||||||
|
@ -102,7 +103,7 @@ func run_async_thread(shell_command):
|
||||||
|
|
||||||
#print(hacky_command)
|
#print(hacky_command)
|
||||||
shell_command.js_callback = JavaScriptBridge.create_callback(Callable(shell_command, "callback"))
|
shell_command.js_callback = JavaScriptBridge.create_callback(Callable(shell_command, "callback"))
|
||||||
web_shell.run_in_vm(hacky_command).then(shell_command.js_callback)
|
web_shell.run_in_vm(command).then(shell_command.js_callback)
|
||||||
else:
|
else:
|
||||||
helpers.crash("Unimplemented OS: %s" % _os)
|
helpers.crash("Unimplemented OS: %s" % _os)
|
||||||
|
|
||||||
|
|
|
@ -200,7 +200,7 @@ func generate_completions(command):
|
||||||
# Part2: Prevent autocompletion to only show filename at the beginning of a command.
|
# Part2: Prevent autocompletion to only show filename at the beginning of a command.
|
||||||
if !(command.substr(0,4) == "git " and command.split(" ").size() <= 2) and command.split(" ").size() > 1:
|
if !(command.substr(0,4) == "git " and command.split(" ").size() <= 2) and command.split(" ").size() > 1:
|
||||||
var last_word = Array(command.split(" ")).pop_back()
|
var last_word = Array(command.split(" ")).pop_back()
|
||||||
var file_string = repository.shell.run("find . -type f")
|
var file_string = await repository.shell.run("find . -type f")
|
||||||
var files = file_string.split("\n")
|
var files = file_string.split("\n")
|
||||||
files = Array(files)
|
files = Array(files)
|
||||||
# The last entry is an empty string, remove it.
|
# The last entry is an empty string, remove it.
|
||||||
|
|
Loading…
Reference in a new issue