mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-11-22 16:20:19 +01:00
Move all exec operations to the Shell class
This commit is contained in:
parent
5a8c377160
commit
f09abe36e9
3 changed files with 21 additions and 25 deletions
20
game.gd
20
game.gd
|
@ -1,32 +1,12 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
var tmp_prefix = "/tmp/"
|
var tmp_prefix = "/tmp/"
|
||||||
var cwd
|
|
||||||
var global_shell
|
var global_shell
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
global_shell = Shell.new()
|
global_shell = Shell.new()
|
||||||
global_shell.cd(tmp_prefix)
|
global_shell.cd(tmp_prefix)
|
||||||
|
|
||||||
cwd = global_shell.run("pwd")
|
|
||||||
# Remove trailing newline.
|
|
||||||
cwd = cwd.substr(0,len(cwd)-1)
|
|
||||||
|
|
||||||
# Run a simple command with arguments, blocking, using OS.execute.
|
|
||||||
func exec(command, args=[]):
|
|
||||||
var debug = true
|
|
||||||
if debug:
|
|
||||||
print("game.exec: %s [%s]" % [command, PoolStringArray(args).join(", ")])
|
|
||||||
|
|
||||||
var output = []
|
|
||||||
OS.execute(command, args, true, output, true)
|
|
||||||
output = output[0]
|
|
||||||
|
|
||||||
if debug:
|
|
||||||
print(output)
|
|
||||||
|
|
||||||
return output
|
|
||||||
|
|
||||||
func read_file(path):
|
func read_file(path):
|
||||||
print ("reading " + path)
|
print ("reading " + path)
|
||||||
var file = File.new()
|
var file = File.new()
|
||||||
|
|
4
main.gd
4
main.gd
|
@ -67,8 +67,8 @@ func load_level(id):
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
# Danger zone!
|
# Danger zone!
|
||||||
game.exec("rm", ["-rf", active_repository_path])
|
game.global_shell.run("rm -rf '%s'" % active_repository_path)
|
||||||
game.exec("rm", ["-rf", goal_repository_path])
|
game.global_shell.run("rm -rf '%s'" % goal_repository_path)
|
||||||
|
|
||||||
construct_repo(goal_script, goal_repository_path)
|
construct_repo(goal_script, goal_repository_path)
|
||||||
construct_repo(active_script, active_repository_path)
|
construct_repo(active_script, active_repository_path)
|
||||||
|
|
22
shell.gd
22
shell.gd
|
@ -9,7 +9,7 @@ func _init():
|
||||||
_fake_editor = game.tmp_prefix + "fake-editor"
|
_fake_editor = game.tmp_prefix + "fake-editor"
|
||||||
var content = game.read_file("res://scripts/fake-editor")
|
var content = game.read_file("res://scripts/fake-editor")
|
||||||
game.write_file(_fake_editor, content)
|
game.write_file(_fake_editor, content)
|
||||||
run("chmod u+x " + _fake_editor)
|
_exec("chmod", ["u+x", _fake_editor])
|
||||||
|
|
||||||
func cd(dir):
|
func cd(dir):
|
||||||
_cwd = dir
|
_cwd = dir
|
||||||
|
@ -17,7 +17,7 @@ func cd(dir):
|
||||||
# Run a shell command given as a string. Run this if you're interested in the
|
# Run a shell command given as a string. Run this if you're interested in the
|
||||||
# output of the command.
|
# output of the command.
|
||||||
func run(command):
|
func run(command):
|
||||||
var debug = false
|
var debug = true
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
print("$ %s" % command)
|
print("$ %s" % command)
|
||||||
|
@ -31,7 +31,23 @@ func run(command):
|
||||||
hacky_command += "cd '%s';" % _cwd
|
hacky_command += "cd '%s';" % _cwd
|
||||||
hacky_command += command
|
hacky_command += command
|
||||||
|
|
||||||
var output = game.exec("/bin/sh", ["-c", hacky_command])
|
var output = _exec("/bin/sh", ["-c", hacky_command])
|
||||||
|
|
||||||
|
if debug:
|
||||||
|
print(output)
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
||||||
|
# Run a simple command with arguments, blocking, using OS.execute.
|
||||||
|
func _exec(command, args=[]):
|
||||||
|
var debug = false
|
||||||
|
|
||||||
|
if debug:
|
||||||
|
print("exec: %s [%s]" % [command, PoolStringArray(args).join(", ")])
|
||||||
|
|
||||||
|
var output = []
|
||||||
|
OS.execute(command, args, true, output, true)
|
||||||
|
output = output[0]
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
print(output)
|
print(output)
|
||||||
|
|
Loading…
Reference in a new issue