2640aec0d7
filepath.IsAbs() will short-circuit on Linux/Unix, so having a single implementation should not affect those platforms. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
19 lines
654 B
Go
19 lines
654 B
Go
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))
|
|
}
|