github.com/remind101/go-getter@v0.0.0-20180809191950-4bda8fa99001/get_file.go (about) 1 package getter 2 3 import ( 4 "net/url" 5 "os" 6 ) 7 8 // FileGetter is a Getter implementation that will download a module from 9 // a file scheme. 10 type FileGetter struct { 11 // Copy, if set to true, will copy data instead of using a symlink 12 Copy bool 13 } 14 15 func (g *FileGetter) ClientMode(u *url.URL) (ClientMode, error) { 16 path := u.Path 17 if u.RawPath != "" { 18 path = u.RawPath 19 } 20 21 fi, err := os.Stat(path) 22 if err != nil { 23 return 0, err 24 } 25 26 // Check if the source is a directory. 27 if fi.IsDir() { 28 return ClientModeDir, nil 29 } 30 31 return ClientModeFile, nil 32 }