| package system | |
| import ( | |
| "os" | |
| "path/filepath" | |
| "strings" | |
| ) | |
| // IsAbs is a platform-agnostic wrapper for filepath.IsAbs. | |
| // | |
| // On Windows, golang filepath.IsAbs does not consider a path \windows\system32 | |
| // as absolute as it doesn't start with a drive-letter/colon combination. However, | |
| // in docker we need to verify things such as WORKDIR /windows/system32 in | |
| // a Dockerfile (which gets translated to \windows\system32 when being processed | |
| // by the daemon). This SHOULD be treated as absolute from a docker processing | |
| // perspective. | |
| func IsAbs(path string) bool { | |
| return filepath.IsAbs(path) || strings.HasPrefix(path, string(os.PathSeparator)) | |
| } |