package cmd import ( "fmt" "github.com/rs/zerolog/log" "github.com/urfave/cli/v2" "codeberg.org/codeberg/pages/server/database" ) func openCertDB(ctx *cli.Context) (certDB database.CertDB, closeFn func(), err error) { if ctx.String("db-type") != "" { log.Trace().Msg("use xorm mode") certDB, err = database.NewXormDB(ctx.String("db-type"), ctx.String("db-conn")) if err != nil { return nil, nil, fmt.Errorf("could not connect to database: %w", err) } } else { // TODO: remove in next version fmt.Println(` ###################### ## W A R N I N G !!! # ###################### You use "pogreb" witch is deprecated and will be removed in the next version. Please switch to sqlite, mysql or postgres !!! The simplest way is, to use './pages certs migrate' and set environment var DB_TYPE to 'sqlite' on next start.`) log.Error().Msg("depricated \"pogreb\" used\n") certDB, err = database.NewPogreb(ctx.String("db-pogreb")) if err != nil { return nil, nil, fmt.Errorf("could not create database: %w", err) } } closeFn = func() { if err := certDB.Close(); err != nil { log.Error().Err(err) } } return certDB, closeFn, nil }