Missing file

This commit is contained in:
Kegan Dougal 2020-06-04 10:46:27 +01:00
parent 3c4ef38f6c
commit e9a33688e1

24
internal/sqlutil/uri.go Normal file
View file

@ -0,0 +1,24 @@
package sqlutil
import (
"fmt"
"net/url"
)
// ParseFileURI returns the filepath in the given file: URI. Specifically, this will handle
// both relative (file:foo.db) and absolute (file:///path/to/foo) paths.
func ParseFileURI(dataSourceName string) (string, error) {
uri, err := url.Parse(dataSourceName)
if err != nil {
return "", err
}
var cs string
if uri.Opaque != "" { // file:filename.db
cs = uri.Opaque
} else if uri.Path != "" { // file:///path/to/filename.db
cs = uri.Path
} else {
return "", fmt.Errorf("invalid file uri: %s", dataSourceName)
}
return cs, nil
}