Feat: version setting and releases dont show db log

pull/41/head
zijiren233 2 years ago
parent 688f093558
commit 9b607b7ba9

@ -12,6 +12,7 @@ import (
"github.com/synctv-org/synctv/cmd/flags" "github.com/synctv-org/synctv/cmd/flags"
"github.com/synctv-org/synctv/internal/conf" "github.com/synctv-org/synctv/internal/conf"
"github.com/synctv-org/synctv/internal/db" "github.com/synctv-org/synctv/internal/db"
"github.com/synctv-org/synctv/internal/version"
"github.com/synctv-org/synctv/utils" "github.com/synctv-org/synctv/utils"
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
@ -143,7 +144,7 @@ func newDBLogger() logger.Interface {
SlowThreshold: time.Second, SlowThreshold: time.Second,
LogLevel: logLevel, LogLevel: logLevel,
IgnoreRecordNotFoundError: true, IgnoreRecordNotFoundError: true,
ParameterizedQueries: !flags.Dev, ParameterizedQueries: !flags.Dev && version.Version != "dev",
Colorful: true, Colorful: true,
}, },
) )

@ -83,54 +83,54 @@ func InitProvider(ctx context.Context) (err error) {
groupSettings := &ProviderGroupSetting{} groupSettings := &ProviderGroupSetting{}
ProviderGroupSettings[group] = groupSettings ProviderGroupSettings[group] = groupSettings
groupSettings.Enabled = settings.NewBoolSetting(fmt.Sprintf("%s_enabled", group), false, group, settings.WithBeforeInitBool(func(bs settings.BoolSetting, b bool) error { groupSettings.Enabled = settings.NewBoolSetting(fmt.Sprintf("%s_enabled", group), false, group, settings.WithBeforeInitBool(func(bs settings.BoolSetting, b bool) (bool, error) {
defer Oauth2EnabledCache.Refresh() defer Oauth2EnabledCache.Refresh()
if b { if b {
return providers.EnableProvider(op) return b, providers.EnableProvider(op)
} else { } else {
providers.DisableProvider(op) providers.DisableProvider(op)
return nil return b, nil
} }
}), settings.WithBeforeSetBool(func(bs settings.BoolSetting, b bool) error { }), settings.WithBeforeSetBool(func(bs settings.BoolSetting, b bool) (bool, error) {
defer Oauth2EnabledCache.Refresh() defer Oauth2EnabledCache.Refresh()
if b { if b {
return providers.EnableProvider(op) return b, providers.EnableProvider(op)
} else { } else {
providers.DisableProvider(op) providers.DisableProvider(op)
return nil return b, nil
} }
})) }))
opt := provider.Oauth2Option{} opt := provider.Oauth2Option{}
groupSettings.ClientID = settings.NewStringSetting(fmt.Sprintf("%s_client_id", group), opt.ClientID, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) error { groupSettings.ClientID = settings.NewStringSetting(fmt.Sprintf("%s_client_id", group), opt.ClientID, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) (string, error) {
opt.ClientID = s opt.ClientID = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
}), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) error { }), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) (string, error) {
opt.ClientID = s opt.ClientID = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
})) }))
groupSettings.ClientSecret = settings.NewStringSetting(fmt.Sprintf("%s_client_secret", group), opt.ClientSecret, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) error { groupSettings.ClientSecret = settings.NewStringSetting(fmt.Sprintf("%s_client_secret", group), opt.ClientSecret, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) (string, error) {
opt.ClientSecret = s opt.ClientSecret = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
}), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) error { }), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) (string, error) {
opt.ClientSecret = s opt.ClientSecret = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
})) }))
groupSettings.RedirectURL = settings.NewStringSetting(fmt.Sprintf("%s_redirect_url", group), opt.RedirectURL, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) error { groupSettings.RedirectURL = settings.NewStringSetting(fmt.Sprintf("%s_redirect_url", group), opt.RedirectURL, group, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) (string, error) {
opt.RedirectURL = s opt.RedirectURL = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
}), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) error { }), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) (string, error) {
opt.RedirectURL = s opt.RedirectURL = s
pi.Init(opt) pi.Init(opt)
return nil return s, nil
})) }))
groupSettings.DisableUserSignup = settings.NewBoolSetting(fmt.Sprintf("%s_disable_user_signup", group), false, group) groupSettings.DisableUserSignup = settings.NewBoolSetting(fmt.Sprintf("%s_disable_user_signup", group), false, group)

@ -21,6 +21,7 @@ const (
SettingGroupProxy SettingGroup = "proxy" SettingGroupProxy SettingGroup = "proxy"
SettingGroupRtmp SettingGroup = "rtmp" SettingGroupRtmp SettingGroup = "rtmp"
SettingGroupDatabase SettingGroup = "database" SettingGroupDatabase SettingGroup = "database"
SettingGroupServer SettingGroup = "server"
SettingGroupOauth2 SettingGroup = "oauth2" SettingGroupOauth2 SettingGroup = "oauth2"
) )

@ -24,18 +24,18 @@ type Bool struct {
setting setting
defaultValue bool defaultValue bool
value uint32 value uint32
beforeInit, beforeSet func(BoolSetting, bool) error beforeInit, beforeSet func(BoolSetting, bool) (bool, error)
} }
type BoolSettingOption func(*Bool) type BoolSettingOption func(*Bool)
func WithBeforeInitBool(beforeInit func(BoolSetting, bool) error) BoolSettingOption { func WithBeforeInitBool(beforeInit func(BoolSetting, bool) (bool, error)) BoolSettingOption {
return func(s *Bool) { return func(s *Bool) {
s.beforeInit = beforeInit s.beforeInit = beforeInit
} }
} }
func WithBeforeSetBool(beforeSet func(BoolSetting, bool) error) BoolSettingOption { func WithBeforeSetBool(beforeSet func(BoolSetting, bool) (bool, error)) BoolSettingOption {
return func(s *Bool) { return func(s *Bool) {
s.beforeSet = beforeSet s.beforeSet = beforeSet
} }
@ -76,7 +76,7 @@ func (b *Bool) Init(value string) error {
} }
if b.beforeInit != nil { if b.beforeInit != nil {
err = b.beforeInit(b, v) v, err = b.beforeInit(b, v)
if err != nil { if err != nil {
return err return err
} }
@ -117,7 +117,7 @@ func (b *Bool) SetString(value string) error {
} }
if b.beforeSet != nil { if b.beforeSet != nil {
err = b.beforeSet(b, v) v, err = b.beforeSet(b, v)
if err != nil { if err != nil {
return err return err
} }
@ -132,20 +132,20 @@ func (b *Bool) SetString(value string) error {
return nil return nil
} }
func (b *Bool) Set(value bool) (err error) { func (b *Bool) Set(v bool) (err error) {
if b.beforeSet != nil { if b.beforeSet != nil {
err = b.beforeSet(b, value) v, err = b.beforeSet(b, v)
if err != nil { if err != nil {
return err return err
} }
} }
err = db.UpdateSettingItemValue(b.name, b.Stringify(value)) err = db.UpdateSettingItemValue(b.name, b.Stringify(v))
if err != nil { if err != nil {
return err return err
} }
b.set(value) b.set(v)
return return
} }

@ -26,7 +26,7 @@ type Float64 struct {
defaultValue float64 defaultValue float64
value uint64 value uint64
validator func(float64) error validator func(float64) error
beforeInit, beforeSet func(Float64Setting, float64) error beforeInit, beforeSet func(Float64Setting, float64) (float64, error)
} }
type Float64SettingOption func(*Float64) type Float64SettingOption func(*Float64)
@ -37,13 +37,13 @@ func WithValidatorFloat64(validator func(float64) error) Float64SettingOption {
} }
} }
func WithBeforeInitFloat64(beforeInit func(Float64Setting, float64) error) Float64SettingOption { func WithBeforeInitFloat64(beforeInit func(Float64Setting, float64) (float64, error)) Float64SettingOption {
return func(s *Float64) { return func(s *Float64) {
s.beforeInit = beforeInit s.beforeInit = beforeInit
} }
} }
func WithBeforeSetFloat64(beforeSet func(Float64Setting, float64) error) Float64SettingOption { func WithBeforeSetFloat64(beforeSet func(Float64Setting, float64) (float64, error)) Float64SettingOption {
return func(s *Float64) { return func(s *Float64) {
s.beforeSet = beforeSet s.beforeSet = beforeSet
} }
@ -87,7 +87,7 @@ func (f *Float64) Init(value string) error {
} }
if f.beforeInit != nil { if f.beforeInit != nil {
err = f.beforeInit(f, v) v, err = f.beforeInit(f, v)
if err != nil { if err != nil {
return err return err
} }
@ -120,7 +120,7 @@ func (f *Float64) SetString(value string) error {
} }
if f.beforeSet != nil { if f.beforeSet != nil {
err = f.beforeSet(f, v) v, err = f.beforeSet(f, v)
if err != nil { if err != nil {
return err return err
} }
@ -139,27 +139,27 @@ func (f *Float64) set(value float64) {
atomic.StoreUint64(&f.value, math.Float64bits(value)) atomic.StoreUint64(&f.value, math.Float64bits(value))
} }
func (f *Float64) Set(value float64) (err error) { func (f *Float64) Set(v float64) (err error) {
if f.validator != nil { if f.validator != nil {
err = f.validator(value) err = f.validator(v)
if err != nil { if err != nil {
return err return err
} }
} }
if f.beforeSet != nil { if f.beforeSet != nil {
err = f.beforeSet(f, value) v, err = f.beforeSet(f, v)
if err != nil { if err != nil {
return err return err
} }
} }
err = db.UpdateSettingItemValue(f.name, f.Stringify(value)) err = db.UpdateSettingItemValue(f.name, f.Stringify(v))
if err != nil { if err != nil {
return err return err
} }
f.set(value) f.set(v)
return return
} }

@ -25,7 +25,7 @@ type Int64 struct {
defaultValue int64 defaultValue int64
value int64 value int64
validator func(int64) error validator func(int64) error
beforeInit, beforeSet func(Int64Setting, int64) error beforeInit, beforeSet func(Int64Setting, int64) (int64, error)
} }
type Int64SettingOption func(*Int64) type Int64SettingOption func(*Int64)
@ -36,13 +36,13 @@ func WithValidatorInt64(validator func(int64) error) Int64SettingOption {
} }
} }
func WithBeforeInitInt64(beforeInit func(Int64Setting, int64) error) Int64SettingOption { func WithBeforeInitInt64(beforeInit func(Int64Setting, int64) (int64, error)) Int64SettingOption {
return func(s *Int64) { return func(s *Int64) {
s.beforeInit = beforeInit s.beforeInit = beforeInit
} }
} }
func WithBeforeSetInt64(beforeSet func(Int64Setting, int64) error) Int64SettingOption { func WithBeforeSetInt64(beforeSet func(Int64Setting, int64) (int64, error)) Int64SettingOption {
return func(s *Int64) { return func(s *Int64) {
s.beforeSet = beforeSet s.beforeSet = beforeSet
} }
@ -86,7 +86,7 @@ func (i *Int64) Init(value string) error {
} }
if i.beforeInit != nil { if i.beforeInit != nil {
err = i.beforeInit(i, v) v, err = i.beforeInit(i, v)
if err != nil { if err != nil {
return err return err
} }
@ -119,7 +119,7 @@ func (i *Int64) SetString(value string) error {
} }
if i.beforeSet != nil { if i.beforeSet != nil {
err = i.beforeSet(i, v) v, err = i.beforeSet(i, v)
if err != nil { if err != nil {
return err return err
} }
@ -138,27 +138,27 @@ func (i *Int64) set(value int64) {
atomic.StoreInt64(&i.value, value) atomic.StoreInt64(&i.value, value)
} }
func (i *Int64) Set(value int64) (err error) { func (i *Int64) Set(v int64) (err error) {
if i.validator != nil { if i.validator != nil {
err = i.validator(value) err = i.validator(v)
if err != nil { if err != nil {
return err return err
} }
} }
if i.beforeSet != nil { if i.beforeSet != nil {
err = i.beforeSet(i, value) v, err = i.beforeSet(i, v)
if err != nil { if err != nil {
return err return err
} }
} }
err = db.UpdateSettingItemValue(i.name, i.Stringify(value)) err = db.UpdateSettingItemValue(i.name, i.Stringify(v))
if err != nil { if err != nil {
return err return err
} }
i.set(value) i.set(v)
return return
} }

@ -25,7 +25,7 @@ type String struct {
lock sync.RWMutex lock sync.RWMutex
value string value string
validator func(string) error validator func(string) error
beforeInit, beforeSet func(StringSetting, string) error beforeInit, beforeSet func(StringSetting, string) (string, error)
} }
type StringSettingOption func(*String) type StringSettingOption func(*String)
@ -36,13 +36,13 @@ func WithValidatorString(validator func(string) error) StringSettingOption {
} }
} }
func WithBeforeInitString(beforeInit func(StringSetting, string) error) StringSettingOption { func WithBeforeInitString(beforeInit func(StringSetting, string) (string, error)) StringSettingOption {
return func(s *String) { return func(s *String) {
s.beforeInit = beforeInit s.beforeInit = beforeInit
} }
} }
func WithBeforeSetString(beforeSet func(StringSetting, string) error) StringSettingOption { func WithBeforeSetString(beforeSet func(StringSetting, string) (string, error)) StringSettingOption {
return func(s *String) { return func(s *String) {
s.beforeSet = beforeSet s.beforeSet = beforeSet
} }
@ -82,7 +82,7 @@ func (s *String) Init(value string) error {
} }
if s.beforeInit != nil { if s.beforeInit != nil {
err = s.beforeInit(s, v) v, err = s.beforeInit(s, v)
if err != nil { if err != nil {
return err return err
} }
@ -115,7 +115,7 @@ func (s *String) SetString(value string) error {
} }
if s.beforeSet != nil { if s.beforeSet != nil {
err = s.beforeSet(s, v) v, err = s.beforeSet(s, v)
if err != nil { if err != nil {
return err return err
} }
@ -136,27 +136,27 @@ func (s *String) set(value string) {
s.value = value s.value = value
} }
func (s *String) Set(value string) (err error) { func (s *String) Set(v string) (err error) {
if s.validator != nil { if s.validator != nil {
err = s.validator(value) err = s.validator(v)
if err != nil { if err != nil {
return err return err
} }
} }
if s.beforeSet != nil { if s.beforeSet != nil {
err = s.beforeSet(s, value) v, err = s.beforeSet(s, v)
if err != nil { if err != nil {
return err return err
} }
} }
err = db.UpdateSettingItemValue(s.name, s.Stringify(value)) err = db.UpdateSettingItemValue(s.name, s.Stringify(v))
if err != nil { if err != nil {
return err return err
} }
s.set(value) s.set(v)
return return
} }

@ -36,7 +36,7 @@ var (
) )
var ( var (
DatabaseVersion = NewStringSetting("database_version", "0.0.1", model.SettingGroupDatabase, WithBeforeSetString(func(ss StringSetting, s string) error { DatabaseVersion = NewStringSetting("database_version", "0.0.1", model.SettingGroupDatabase, WithBeforeSetString(func(ss StringSetting, s string) (string, error) {
return errors.New("not support change database version") return "", errors.New("not support change database version")
})) }))
) )

@ -10,6 +10,8 @@ import (
"github.com/google/go-github/v56/github" "github.com/google/go-github/v56/github"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/synctv-org/synctv/cmd/flags" "github.com/synctv-org/synctv/cmd/flags"
"github.com/synctv-org/synctv/internal/model"
"github.com/synctv-org/synctv/internal/settings"
"github.com/synctv-org/synctv/utils" "github.com/synctv-org/synctv/utils"
) )
@ -22,6 +24,11 @@ var (
Version string = "dev" Version string = "dev"
WebVersion string = "dev" WebVersion string = "dev"
GitCommit string GitCommit string
_ = settings.NewStringSetting("version", "placeholder string", model.SettingGroupServer, settings.WithBeforeInitString(func(ss settings.StringSetting, s string) (string, error) {
return Version, nil
}), settings.WithBeforeSetString(func(ss settings.StringSetting, s string) (string, error) {
return "", errors.New("version can not be set")
}))
) )
type VersionInfo struct { type VersionInfo struct {

Loading…
Cancel
Save