mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
8072e62d83
syscall.Stat (and Lstat), unlike functions from os pkg, return "raw" errors (like EPERM or EINVAL), and those are propagated up the function call stack unchanged, and gets logged and/or returned to the user as is. Wrap those into os.PathError{} so the error message will at least have function name and file name. Note we use Capitalized function names to distinguish between functions in os and ours. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
20 lines
442 B
Go
20 lines
442 B
Go
// +build !windows
|
|
|
|
package system // import "github.com/docker/docker/pkg/system"
|
|
|
|
import (
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
// Lstat takes a path to a file and returns
|
|
// a system.StatT type pertaining to that file.
|
|
//
|
|
// Throws an error if the file does not exist
|
|
func Lstat(path string) (*StatT, error) {
|
|
s := &syscall.Stat_t{}
|
|
if err := syscall.Lstat(path, s); err != nil {
|
|
return nil, &os.PathError{"Lstat", path, err}
|
|
}
|
|
return fromStatT(s)
|
|
}
|