1
0
mirror of https://github.com/rancher/os.git synced 2025-06-27 07:16:48 +00:00
os/util/util_linux.go
Sven Dowideit 087bc6fd2d Convert install script to go
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2017-01-15 23:39:38 +00:00

46 lines
805 B
Go
Executable File

// +build linux
package util
import (
"os"
"syscall"
"github.com/docker/docker/pkg/mount"
)
func mountProc() error {
if _, err := os.Stat("/proc/self/mountinfo"); os.IsNotExist(err) {
if _, err := os.Stat("/proc"); os.IsNotExist(err) {
if err = os.Mkdir("/proc", 0755); err != nil {
return err
}
}
if err := syscall.Mount("none", "/proc", "proc", 0, ""); err != nil {
return err
}
}
return nil
}
func Mount(device, directory, fsType, options string) error {
if err := mountProc(); err != nil {
return nil
}
if _, err := os.Stat(directory); os.IsNotExist(err) {
err = os.MkdirAll(directory, 0755)
if err != nil {
return err
}
}
return mount.Mount(device, directory, fsType, options)
}
func Unmount(target string) error {
return mount.Unmount(target)
}