1
0
mirror of https://github.com/rancher/os.git synced 2025-09-02 15:24:32 +00:00

Start initial support of running in Docker

This commit is contained in:
Darren Shepherd
2015-02-14 09:35:12 -07:00
parent d564e5ae7d
commit c997143d22
3 changed files with 94 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ import (
"archive/tar"
"fmt"
"io"
"math/rand"
"os"
"path"
"syscall"
@@ -11,6 +12,10 @@ import (
"github.com/docker/docker/pkg/mount"
)
var (
letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
)
func mountProc() error {
if _, err := os.Stat("/proc/self/mountinfo"); os.IsNotExist(err) {
if _, err := os.Stat("/proc"); os.IsNotExist(err) {
@@ -94,3 +99,58 @@ func ExtractTar(archive string, dest string) error {
return nil
}
func Contains(values []string, value string) bool {
if len(value) == 0 {
return false
}
for _, value := range values {
if value == value {
return true
}
}
return false
}
type ReturnsErr func() error
func ShortCircuit(funcs ...ReturnsErr) error {
for _, f := range funcs {
err := f()
if err != nil {
return err
}
}
return nil
}
type ErrWriter struct {
w io.Writer
Err error
}
func NewErrorWriter(w io.Writer) *ErrWriter {
return &ErrWriter{
w: w,
}
}
func (e *ErrWriter) Write(buf []byte) *ErrWriter {
if e.Err != nil {
return e
}
_, e.Err = e.w.Write(buf)
return e
}
func RandSeq(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}