2018-12-04 03:34:30 +00:00
|
|
|
package database
|
|
|
|
|
|
|
|
import (
|
2022-12-15 21:13:48 +00:00
|
|
|
_ "io"
|
|
|
|
"embed"
|
2018-12-04 03:34:30 +00:00
|
|
|
"path/filepath"
|
2022-12-05 02:59:22 +00:00
|
|
|
|
|
|
|
"github.com/gchaincl/dotsql"
|
|
|
|
"github.com/swithek/dotsqlx"
|
2018-12-04 03:34:30 +00:00
|
|
|
)
|
|
|
|
|
2022-10-23 13:08:06 +00:00
|
|
|
func GetDefaultDBPath() string {
|
|
|
|
return DefaultDBPath
|
|
|
|
}
|
|
|
|
|
2018-12-04 03:34:30 +00:00
|
|
|
func GetDBFullPath() string {
|
2022-10-23 13:08:06 +00:00
|
|
|
dbdir := GetDefaultDBPath()
|
2018-12-04 03:34:30 +00:00
|
|
|
dbpath := filepath.Join(dbdir, DBFileName)
|
|
|
|
return dbpath
|
|
|
|
}
|
2022-12-05 02:59:22 +00:00
|
|
|
|
|
|
|
// Loads a dotsql <file> and, wraps it with dotsqlx
|
|
|
|
func DotxQuery(file string) (*dotsqlx.DotSqlx, error){
|
|
|
|
dot, err := dotsql.LoadFromFile(file)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return dotsqlx.Wrap(dot), nil
|
|
|
|
}
|
2022-12-15 21:13:48 +00:00
|
|
|
|
|
|
|
// Loads a dotsql from an embedded FS
|
|
|
|
func DotxQueryEmbedFS(fs embed.FS, filename string) (*dotsqlx.DotSqlx, error){
|
|
|
|
|
|
|
|
rawsql, err := fs.ReadFile(filename)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dot, err := dotsql.LoadFromString(string(rawsql))
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return dotsqlx.Wrap(dot), nil
|
|
|
|
}
|