mirror of
https://github.com/b4tman/armhf-alpine-qemu.git
synced 2025-09-23 09:19:07 +00:00
properly handle exit code of emulated process
fixes #7 Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
This commit is contained in:
BIN
resin-xbuild
BIN
resin-xbuild
Binary file not shown.
@@ -4,6 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
func crossBuildStart() {
|
func crossBuildStart() {
|
||||||
@@ -28,12 +29,12 @@ func crossBuildEnd() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func runShell() {
|
func runShell() error {
|
||||||
cmd := exec.Command("/usr/bin/qemu-arm-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
|
cmd := exec.Command("/usr/bin/qemu-arm-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
cmd.Run()
|
return cmd.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -43,8 +44,20 @@ func main() {
|
|||||||
case "cross-build-end":
|
case "cross-build-end":
|
||||||
crossBuildEnd()
|
crossBuildEnd()
|
||||||
case "/bin/sh":
|
case "/bin/sh":
|
||||||
|
code := 0
|
||||||
crossBuildEnd()
|
crossBuildEnd()
|
||||||
runShell()
|
|
||||||
|
if err := runShell(); err != nil {
|
||||||
|
code = 1
|
||||||
|
if exiterr, ok := err.(*exec.ExitError); ok {
|
||||||
|
if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
|
||||||
|
code = status.ExitStatus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
crossBuildStart()
|
crossBuildStart()
|
||||||
|
|
||||||
|
os.Exit(code)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user