Avoid creation of irrelevant temporary files on Windows
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>v0.8
parent
1c4b5d11b3
commit
6d3f568629
|
@ -1,42 +0,0 @@
|
||||||
package binfmt_misc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"compress/gzip"
|
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
|
||||||
)
|
|
||||||
|
|
||||||
func check(bin string) error {
|
|
||||||
tmpdir, err := ioutil.TempDir("", "qemu-check")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpdir)
|
|
||||||
pp := filepath.Join(tmpdir, "check")
|
|
||||||
|
|
||||||
r, err := gzip.NewReader(bytes.NewReader([]byte(bin)))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer r.Close()
|
|
||||||
|
|
||||||
f, err := os.OpenFile(pp, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0700)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := io.Copy(f, r); err != nil {
|
|
||||||
f.Close()
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
f.Close()
|
|
||||||
|
|
||||||
cmd := exec.Command("/check")
|
|
||||||
withChroot(cmd, tmpdir)
|
|
||||||
err = cmd.Run()
|
|
||||||
return err
|
|
||||||
}
|
|
|
@ -3,7 +3,13 @@
|
||||||
package binfmt_misc
|
package binfmt_misc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"compress/gzip"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
"syscall"
|
"syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,3 +18,34 @@ func withChroot(cmd *exec.Cmd, dir string) {
|
||||||
Chroot: dir,
|
Chroot: dir,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func check(bin string) error {
|
||||||
|
tmpdir, err := ioutil.TempDir("", "qemu-check")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer os.RemoveAll(tmpdir)
|
||||||
|
pp := filepath.Join(tmpdir, "check")
|
||||||
|
|
||||||
|
r, err := gzip.NewReader(bytes.NewReader([]byte(bin)))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer r.Close()
|
||||||
|
|
||||||
|
f, err := os.OpenFile(pp, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0700)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := io.Copy(f, r); err != nil {
|
||||||
|
f.Close()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
f.Close()
|
||||||
|
|
||||||
|
cmd := exec.Command("/check")
|
||||||
|
withChroot(cmd, tmpdir)
|
||||||
|
err = cmd.Run()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
|
@ -3,8 +3,13 @@
|
||||||
package binfmt_misc
|
package binfmt_misc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
func withChroot(cmd *exec.Cmd, dir string) {
|
func withChroot(cmd *exec.Cmd, dir string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func check(bin string) error {
|
||||||
|
return errors.New("binfmt is not supported on Windows")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue