Documentation ¶
Overview ¶
Nging is a toolbox for webmasters Copyright (C) 2018-present Wenhui Shen <swh@admpub.com>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
Index ¶
- Constants
- Variables
- func AddConfigInitor(initors ...func(*Config))
- func AutoSecure(ctx echo.Context, ses *echo.SessionOptions)
- func ConnectDB(c sdb.DB, index int, name string) error
- func ConnectMySQL(c sdb.DB) (sqlbuilder.Database, error)
- func CreaterMySQL(err error, c sdb.DB) error
- func ExecMySQL(sqlStr string) error
- func FireInitSettings(configs echo.H) error
- func FireSetSettings(group string, diffs Diffs) error
- func FixWd() error
- func FromDB(group ...string) echo.H
- func GetInsertSQLs() map[string][]string
- func GetInstallSQLs() map[string][]string
- func GetPreupgradeSQLFiles() []string
- func GetPreupgradeSQLs() map[string]map[string][]string
- func GetSQLInsertFiles() []string
- func GetSQLInstallFiles() ([]string, error)
- func InitSessionOptions(c *Config)
- func InstalledLockFile() string
- func IsInstalled() bool
- func JoinVersionLabel(number string, label string) string
- func MustOK(err error)
- func OnGroupSetSettings(group string, fn func(Diffs) error)
- func OnKeySetSettings(groupAndKey string, fn func(Diff) error)
- func OnceUpgradeDB() error
- func ParseConfig() error
- func QueryTo(sqlStr string, result interface{}) (sqlbuilder.Iterator, error)
- func RegisterInsertSQL(project string, insertSQL string)
- func RegisterInstallSQL(project string, installSQL string)
- func RegisterPreupgradeSQL(project string, version, preupgradeSQL string)
- func RegisterSessionStore(name string, title string, initFn SessionStoreInit)
- func SetInstalled(lockFile string) error
- func Setting(group ...string) echo.H
- func SettingsInitialized() bool
- func Table(table string) string
- func ToTable(m sqlbuilder.Name_) string
- func UpgradeDB()
- func WatchConfig(fn func(string) error)
- type CLIConfig
- func (c *CLIConfig) Close() error
- func (c *CLIConfig) CmdGet(typeName string) *exec.Cmd
- func (c *CLIConfig) CmdGroupStop(groupName string) error
- func (c *CLIConfig) CmdHasGroup(groupName string) bool
- func (c *CLIConfig) CmdSendSignal(typeName string, sig os.Signal) error
- func (c *CLIConfig) CmdSet(name string, cmd *exec.Cmd)
- func (c *CLIConfig) CmdStop(typeName string) error
- func (c *CLIConfig) ConfDir() string
- func (c *CLIConfig) GenerateIDFromConfigFileName(configFile string, musts ...bool) string
- func (c *CLIConfig) InitEnviron(needFindEnvFile ...bool) (err error)
- func (c *CLIConfig) InitFlag(flagSet *pflag.FlagSet)
- func (c *CLIConfig) IsPanelMode() bool
- func (c *CLIConfig) IsRunning(cmdType string) bool
- func (c *CLIConfig) Kill(cmd *exec.Cmd) error
- func (c *CLIConfig) OnlyRunServer() bool
- func (c *CLIConfig) ParseConfig()
- func (c *CLIConfig) Pid() int
- func (c *CLIConfig) Reload(newCfg *Config, cts ...string) error
- func (c *CLIConfig) RunStartup()
- func (c *CLIConfig) SendSignal(cmd *exec.Cmd, sig os.Signal) error
- func (c *CLIConfig) SendSignalToAllCmd(sig os.Signal) error
- func (c *CLIConfig) SetLogWriter(cmdType string, writer ...io.Writer) error
- func (c *CLIConfig) WatchEnvConfig()
- type Config
- func (c *Config) APIKey() string
- func (c *Config) AddReloader(rd ...func(newConfig *Config)) *Config
- func (c *Config) AsDefault() *Config
- func (c *Config) Codec(lengths ...int) codec.Codec
- func (c *Config) ConfigFromDB() echo.H
- func (c *Config) ConnectedDB(autoConn ...bool) bool
- func (c *Config) CookieConfig() scookie.Config
- func (c *Config) Debug() bool
- func (c *Config) Decode(encrypted string, keys ...string) string
- func (c *Config) Decode256(encrypted string, keys ...string) string
- func (c *Config) Encode(raw string, keys ...string) string
- func (c *Config) Encode256(raw string, keys ...string) string
- func (c *Config) GenerateRandomKey() string
- func (c *Config) GenerateSample() error
- func (c *Config) GetExtend() echo.H
- func (c *Config) GetMaxRequestBodySize() int
- func (c *Config) InitExtend() *Config
- func (c *Config) InitSecretKey() *Config
- func (c *Config) IsEnv(env string) bool
- func (c *Config) IsEnvDev() bool
- func (c *Config) IsEnvProd() bool
- func (c *Config) PrintExtend()
- func (c *Config) Reload(newConfig *Config) error
- func (c *Config) SaveToFile() error
- func (c *Config) SetDebug(on bool) *Config
- func (c *Config) SetDefaults() *Config
- func (c *Config) Settings() *Settings
- func (c *Config) UnregisterExtend(key string)
- type DBOperators
- type Diff
- type Diffs
- type Email
- type Log
- type Navigation
- type ReloadByConfig
- type SQLCollection
- type SessionStoreInit
- type Settings
- func (c *Settings) GetConfig() echo.H
- func (c *Settings) Init(ctx echo.Context) error
- func (c *Settings) MaxRequestBodySizeBytes() int
- func (c *Settings) SetBy(r echo.H, defaults echo.H) *Settings
- func (c *Settings) SetConfig(group string, ngingConfig echo.H, defaults echo.H)
- func (c *Settings) SetConfigs(ctx echo.Context, groups ...string) error
- func (c *Settings) SetDebug(on bool)
- type Validation
- type Validations
- type VersionInfo
Constants ¶
const ( Bit128 = 128 Bit256 = 256 )
const ( LockFileName = `installed.lock` ConfigName = `ConfigFromFile` SettingName = `ConfigFromDB` )
Variables ¶
var ( Installed sql.NullBool // Errors ErrUnknowDatabaseType = errors.New(`unkown database type`) )
var ( SessionOptions *echo.SessionOptions CookieOptions *echo.CookieOptions SessionEngine = `file` SessionName = `SID` SessionStores = echo.NewKVxData[SessionStoreInit, any]() )
var ( DBConnecters = map[string]func(sdb.DB) (sqlbuilder.Database, error){ `mysql`: ConnectMySQL, } DBInstallers = map[string]func(string) error{ `mysql`: ExecMySQL, } DBCreaters = map[string]func(error, sdb.DB) error{ `mysql`: CreaterMySQL, } DBUpgraders = map[string]func(string, *sync.Config, sdb.DB) (DBOperators, error){ `mysql`: UpgradeMySQL, } DBEngines = echo.NewKVData().Add(`mysql`, `MySQL`) ParseTimeDuration = ssystem.ParseTimeDuration ParseBytes = ssystem.ParseBytes )
var CmdIsRunning = com.CmdIsRunning
var DefaultLogCategories = []string{`db`, `echo,mock`}
var DefaultPort = 9999
var DefaultStartup = `task`
var ErrCmdNotRunning = errors.New(`command is not running`)
var Version = &VersionInfo{Name: `Nging`}
Version 版本信息
Functions ¶
func AddConfigInitor ¶
func AddConfigInitor(initors ...func(*Config))
func AutoSecure ¶
func AutoSecure(ctx echo.Context, ses *echo.SessionOptions)
func ConnectMySQL ¶
func ConnectMySQL(c sdb.DB) (sqlbuilder.Database, error)
func FireInitSettings ¶
func FireSetSettings ¶
func GetInsertSQLs ¶
func GetInstallSQLs ¶
func GetPreupgradeSQLFiles ¶
func GetPreupgradeSQLFiles() []string
func GetPreupgradeSQLs ¶
func GetSQLInsertFiles ¶
func GetSQLInsertFiles() []string
func GetSQLInstallFiles ¶
func InitSessionOptions ¶
func InitSessionOptions(c *Config)
func InstalledLockFile ¶
func InstalledLockFile() string
func IsInstalled ¶
func IsInstalled() bool
func JoinVersionLabel ¶
func OnGroupSetSettings ¶
OnGroupSetSettings 注册配置组的变动事件 OnGroupSetSettings(`base`,fn)
func OnKeySetSettings ¶
OnKeySetSettings 注册配置组中某个配置的变动事件 OnKeySetSettings(`base.debug`,fn)
func OnceUpgradeDB ¶
func OnceUpgradeDB() error
func ParseConfig ¶
func ParseConfig() error
func RegisterInsertSQL ¶
func RegisterInstallSQL ¶
func RegisterPreupgradeSQL ¶
func RegisterSessionStore ¶
func RegisterSessionStore(name string, title string, initFn SessionStoreInit)
func SetInstalled ¶
func SettingsInitialized ¶ added in v0.5.7
func SettingsInitialized() bool
func ToTable ¶
func ToTable(m sqlbuilder.Name_) string
func WatchConfig ¶
Types ¶
type CLIConfig ¶
type CLIConfig struct { BackendDomain string //后台绑定域名 FrontendDomain string //前台绑定域名 Address string //监听IP地址 Port int //监听端口 Conf string //自定义配置文件 Confd string //系统默认配置目录 Confx string //子模块配置文件 Type string //启动类型: webserver/ftpserver/manager Startup string //manager启动时同时启动的服务,可选的有webserver/ftpserver,如有多个需用半角逗号“,”隔开 // contains filtered or unexported fields }
func NewCLIConfig ¶
func NewCLIConfig() *CLIConfig
func (*CLIConfig) CmdGroupStop ¶
func (*CLIConfig) CmdHasGroup ¶
func (*CLIConfig) CmdSendSignal ¶
func (*CLIConfig) GenerateIDFromConfigFileName ¶
func (*CLIConfig) InitEnviron ¶
func (*CLIConfig) IsPanelMode ¶
func (*CLIConfig) OnlyRunServer ¶
func (*CLIConfig) ParseConfig ¶
func (c *CLIConfig) ParseConfig()
func (*CLIConfig) SetLogWriter ¶
func (*CLIConfig) WatchEnvConfig ¶
func (c *CLIConfig) WatchEnvConfig()
type Config ¶
type Config struct { DB sdb.DB `json:"db"` Sys ssystem.System `json:"sys"` Cron scron.Cron `json:"cron"` Cookie scookie.Config `json:"cookie"` Language language.Config `json:"language"` Extend echo.H `json:"extend,omitempty"` // 自定义validator 验证规则。map 的 key 为规则标识,值为规则 Validations Validations `json:"validations"` // contains filtered or unexported fields }
func InitConfig ¶
func MustGetConfig ¶
func MustGetConfig() *Config
func (*Config) AddReloader ¶
func (*Config) ConfigFromDB ¶
func (*Config) ConnectedDB ¶
ConnectedDB 数据库是否已连接,如果没有连接则自动连接
func (*Config) CookieConfig ¶
func (*Config) GenerateRandomKey ¶
func (*Config) GenerateSample ¶
func (*Config) GetMaxRequestBodySize ¶
func (*Config) InitExtend ¶
func (*Config) InitSecretKey ¶
func (*Config) PrintExtend ¶
func (c *Config) PrintExtend()
func (*Config) SaveToFile ¶
func (*Config) SetDefaults ¶
func (*Config) UnregisterExtend ¶
type DBOperators ¶
type DBOperators struct { Source sync.DBOperator Destination sync.DBOperator }
func UpgradeMySQL ¶
type Email ¶
type Log ¶
type Log struct { Debug bool `json:"debug"` Colorable bool `json:"colorable"` // for console SaveFile string `json:"saveFile"` // for file FileMaxBytes int64 `json:"fileMaxBytes"` // for file Targets string `json:"targets" form_delimiter:","` Categories []string `json:"cagegories"` }
func (*Log) LogCategories ¶
type ReloadByConfig ¶
type SQLCollection ¶
type SQLCollection struct { Install map[string][]string //{ project:[sql-content] } Insert map[string][]string //{ project:[sql-content] } Preupgrade map[string]map[string][]string //{ project:{ version:[sql-content] } } }
func GetSQLCollection ¶
func GetSQLCollection() *SQLCollection
func NewSQLCollection ¶
func NewSQLCollection() *SQLCollection
func (*SQLCollection) RegisterInsert ¶
func (s *SQLCollection) RegisterInsert(project string, insertSQL string) *SQLCollection
func (*SQLCollection) RegisterInstall ¶
func (s *SQLCollection) RegisterInstall(project, installSQL string) *SQLCollection
func (*SQLCollection) RegisterPreupgrade ¶
func (s *SQLCollection) RegisterPreupgrade(project string, version, preupgradeSQL string) *SQLCollection
type SessionStoreInit ¶
type Settings ¶
type Settings struct { Email Email `json:"email"` Log Log `json:"log"` APIKey string `json:"-"` //API密钥 Debug bool `json:"debug"` MaxRequestBodySize string `json:"maxRequestBodySize"` Base echo.H `json:"base"` // contains filtered or unexported fields }
func NewSettings ¶
func (*Settings) MaxRequestBodySizeBytes ¶
func (*Settings) SetConfigs ¶
type Validation ¶
type Validation struct { Regexp string `json:"regexp"` Translations map[string]string `json:"translations"` }
func (*Validation) Register ¶
func (v *Validation) Register(name string) error
type Validations ¶
type Validations map[string]*Validation
func (Validations) Register ¶
func (v Validations) Register() (err error)
type VersionInfo ¶
type VersionInfo struct { Name string //软件名称 Number string //版本号 1.0.1 Package string //套餐 Label string //版本标签 beta/alpha/stable DBSchema float64 //数据库表版本 例如:1.2 BuildTime string //构建时间 BuildOS string //构建目标系统 BuildArch string //构建目标架构 CommitID string //GIT提交ID Licensed bool //是否已授权 Expired time.Time //过期时间 }
func (*VersionInfo) IsExpired ¶
func (v *VersionInfo) IsExpired() bool
func (*VersionInfo) IsNew ¶
func (v *VersionInfo) IsNew(number string, label string, dump ...bool) bool
func (*VersionInfo) String ¶
func (v *VersionInfo) String() string
func (*VersionInfo) VNumberString ¶
func (v *VersionInfo) VNumberString() string
func (*VersionInfo) VString ¶
func (v *VersionInfo) VString() string