parent
8d13f1ece8
commit
05d1aa41c6
1 changed files with 38 additions and 0 deletions
|
@ -1,6 +1,44 @@
|
||||||
package cli
|
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.
|
// run builds and runs the executable.
|
||||||
func run(args []string) int {
|
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
|
return 0
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue