Make utils_daemon and volumes cross-platform compileable.

Signed-off-by: Rik Nijessen <riknijessen@gmail.com>
This commit is contained in:
Rik Nijessen
2015-03-16 11:46:07 +01:00
parent 1a5e46ce89
commit 1ec2eac50d
10 changed files with 64 additions and 25 deletions
+3 -3
View File
@@ -3,14 +3,14 @@
package utils
import (
"github.com/docker/docker/pkg/system"
"os"
"syscall"
)
// IsFileOwner checks whether the current user is the owner of the given file.
func IsFileOwner(f string) bool {
if fileInfo, err := os.Stat(f); err == nil && fileInfo != nil {
if stat, ok := fileInfo.Sys().(*syscall.Stat_t); ok && int(stat.Uid) == os.Getuid() {
if fileInfo, err := system.Stat(f); err == nil && fileInfo != nil {
if int(fileInfo.Uid()) == os.Getuid() {
return true
}
}
+26
View File
@@ -0,0 +1,26 @@
package utils
import (
"os"
"path"
"testing"
)
func TestIsFileOwner(t *testing.T) {
var err error
var file *os.File
if file, err = os.Create(path.Join(os.TempDir(), "testIsFileOwner")); err != nil {
t.Fatalf("failed to create file: %s", err)
}
file.Close()
if ok := IsFileOwner(path.Join(os.TempDir(), "testIsFileOwner")); !ok {
t.Fatalf("User should be owner of file")
}
if err = os.Remove(path.Join(os.TempDir(), "testIsFileOwner")); err != nil {
t.Fatalf("failed to remove file: %s", err)
}
}