github.com/kubri/kubri@v0.5.1-0.20240317001612-bda2aaef967e/source/file/file.go (about) 1 package file 2 3 import ( 4 "net/url" 5 "path/filepath" 6 7 _ "gocloud.dev/blob/fileblob" // blob driver 8 9 "github.com/kubri/kubri/internal/blob" 10 "github.com/kubri/kubri/source" 11 ) 12 13 type Config struct { 14 Path string 15 URL string 16 } 17 18 func New(c Config) (*source.Source, error) { 19 path, err := filepath.Abs(c.Path) 20 if err != nil { 21 return nil, err 22 } 23 url, _ := url.JoinPath("file:///", filepath.ToSlash(path)) 24 if c.URL == "" { 25 c.URL = url 26 } 27 return blob.NewSource(url, "", c.URL) 28 }