From 05d1aa41c67f55d7288f61cb0c0d0ca85136f86c Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Sat, 5 Jul 2025 23:26:05 +0200 Subject: [PATCH] Added run command --- src/cli/run.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/cli/run.go b/src/cli/run.go index 25d8377..e97ddff 100644 --- a/src/cli/run.go +++ b/src/cli/run.go @@ -1,6 +1,44 @@ package cli +import ( + "fmt" + "os" + "os/exec" + + "git.urbach.dev/cli/q/src/compiler" + "git.urbach.dev/cli/q/src/linker" +) + // run builds and runs the executable. func run(args []string) int { + b, err := newBuildFromArgs(args) + + if err != nil { + return exit(err) + } + + result, err := compiler.Compile(b) + + if err != nil { + return exit(err) + } + + err = linker.WriteFile(b.Executable(), b, result) + + if err != nil { + return exit(err) + } + + cmd := exec.Command(b.Executable()) + cmd.Stdout = os.Stdout + cmd.Stdin = os.Stdin + cmd.Stderr = os.Stderr + err = cmd.Run() + + if err != nil { + fmt.Fprintln(os.Stderr, err) + return exit(err) + } + return 0 } \ No newline at end of file