sshpiper/sshpiperd/upstream/database/sqlite.go
2019-01-16 15:15:46 -08:00

40 lines
813 B
Go

package database
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite" // gorm dialect
upstreamprovider "github.com/tg123/sshpiper/sshpiperd/upstream"
)
type sqliteplugin struct {
plugin
Config struct {
File string `long:"upstream-sqlite-dbfile" default:"file:sshpiper.sqlite" description:"Database file path for SQLite 3" env:"SSHPIPERD_UPSTREAM_SQLITE_FILE" ini-name:"upstream-sqlite-file"`
}
}
func (p *sqliteplugin) create() (*gorm.DB, error) {
db, err := gorm.Open("sqlite3", p.Config.File)
if err != nil {
return nil, err
}
return db, nil
}
func (sqliteplugin) GetName() string {
return "sqlite"
}
func (p *sqliteplugin) GetOpts() interface{} {
return &p.Config
}
func init() {
p := &sqliteplugin{}
p.createdb = p
upstreamprovider.Register("sqlite", p)
}