config

package
v3.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2021 License: AGPL-3.0 Imports: 64 Imported by: 0

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

View Source
const FRPConfigExtension = `.json` //`.yaml`

Variables

View Source
var (
	EmptyBytes                 = []byte{}
	ErrNoAvailibaleConfigFound = errors.New(`no available configurations found`)
)
View Source
var (
	Daemon            = goforever.Default
	DaemonDefaultHook = DaemonCommonHook
)
View Source
var (
	Installed sql.NullBool

	DefaultConfig         *Config
	DefaultCLIConfig      = NewCLIConfig()
	OAuthUserSessionKey   = `oauthUser`
	ErrUnknowDatabaseType = errors.New(`unkown database type`)
)
View Source
var (
	SessionOptions *echo.SessionOptions
	CookieOptions  *cookie.CookieOptions
	SessionEngine  = `file`
	SessionName    = `SID`
)
View Source
var (
	DBConnecters = map[string]func(*Config) error{
		`mysql`: ConnectMySQL,
		`mongo`: ConnectMongoDB,
	}
	DBInstallers = map[string]func(string) error{
		`mysql`: ExecMySQL,
	}
	DBCreaters = map[string]func(error, *Config) error{
		`mysql`: CreaterMySQL,
	}
	DBUpgraders = map[string]func(string, *sync.Config, *Config) (DBOperators, error){
		`mysql`: UpgradeMySQL,
	}
	DBEngines = echo.NewKVData().Add(`mysql`, `MySQL`)
)
View Source
var CmdIsRunning = com.CmdIsRunning
View Source
var DefaultLogCategories = []string{`db`, `echo,mock`}
View Source
var DefaultPort = 9999
View Source
var DefaultStartup = `webserver,task,daemon,ftpserver,frpserver,frpclient`
View Source
var ErrCmdNotRunning = errors.New(`command is not running`)
View Source
var Navigations = []*Navigation{}
View Source
var Setting = common.Setting
View Source
var Version = &VersionInfo{Name: `Nging`}

Version 版本信息

Functions

func AddDaemon

func AddDaemon(p *dbschema.NgingForeverProcess, run ...bool) *goforever.Process

func ConnectDB

func ConnectDB(c *Config) error

func ConnectMongoDB

func ConnectMongoDB(c *Config) error

func ConnectMySQL

func ConnectMySQL(c *Config) error

func CreaterMySQL

func CreaterMySQL(err error, c *Config) error

func DaemonCommonHook

func DaemonCommonHook(p *goforever.Process)

func ExecMySQL

func ExecMySQL(sqlStr string) error

func FireInitSettings

func FireInitSettings(configs echo.H) error

func FireSetSettings

func FireSetSettings(group string, diffs Diffs) error

func GetPreupgradeSQLFiles

func GetPreupgradeSQLFiles() []string

func GetSQLInsertFiles

func GetSQLInsertFiles() []string

func GetSQLInstallFiles

func GetSQLInstallFiles() ([]string, error)

func InitSessionOptions

func InitSessionOptions(c *Config)

func IsInstalled

func IsInstalled() bool

func MustOK

func MustOK(err error)

func OnExitedDaemon

func OnExitedDaemon(processM *dbschema.NgingForeverProcess)

OnExitedDaemon 当值守程序达到最大重试次数退出时

func OnGroupSetSettings added in v3.6.2

func OnGroupSetSettings(groupAndKey string, fn func(Diffs) error)

func OnKeySetSettings added in v3.6.2

func OnKeySetSettings(groupAndKey string, fn func(Diff) error)

func OnceUpgradeDB

func OnceUpgradeDB() error

func ParseArgsSlice

func ParseArgsSlice(a string) []string

func ParseConfig

func ParseConfig() error

func ParseEnvSlice

func ParseEnvSlice(a string) []string

func ParseTimeDuration

func ParseTimeDuration(timeout string) time.Duration

func QueryTo

func QueryTo(sqlStr string, result interface{}) (sqlbuilder.Iterator, error)

func RestartDaemon

func RestartDaemon()

RestartDaemon 重启所有已登记的进程

func RunDaemon

func RunDaemon()

RunDaemon 运行值守程序

func SetInstalled

func SetInstalled(lockFile string) error

func Table

func Table(table string) string

func ToTable

func ToTable(m sqlbuilder.Name_) string

func UpgradeDB

func UpgradeDB()

func WatchConfig

func WatchConfig(fn func(string) error)

Types

type CLIConfig

type CLIConfig struct {
	BackendDomain  string //后台绑定域名
	FrontendDomain string //前台绑定域名
	Address        string //监听IP地址
	Port           int    //监听端口
	Conf           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) CaddyReload

func (c *CLIConfig) CaddyReload() error

func (*CLIConfig) CaddyRestart

func (c *CLIConfig) CaddyRestart(writer ...io.Writer) error

func (*CLIConfig) CaddyStart

func (c *CLIConfig) CaddyStart(writer ...io.Writer) (err error)

func (*CLIConfig) CaddyStop

func (c *CLIConfig) CaddyStop() error

func (*CLIConfig) CaddyStopHistory

func (c *CLIConfig) CaddyStopHistory() (err error)

func (*CLIConfig) Close

func (c *CLIConfig) Close() error

func (*CLIConfig) CmdGet

func (c *CLIConfig) CmdGet(typeName string) *exec.Cmd

func (*CLIConfig) CmdGroupStop

func (c *CLIConfig) CmdGroupStop(groupName string) error

func (*CLIConfig) CmdHasGroup

func (c *CLIConfig) CmdHasGroup(groupName string) bool

func (*CLIConfig) CmdSendSignal

func (c *CLIConfig) CmdSendSignal(typeName string, sig os.Signal) error

func (*CLIConfig) CmdSet

func (c *CLIConfig) CmdSet(name string, cmd *exec.Cmd)

func (*CLIConfig) CmdStop

func (c *CLIConfig) CmdStop(typeName string) error

func (*CLIConfig) FRPClientRestart

func (c *CLIConfig) FRPClientRestart(writer ...io.Writer) error

func (*CLIConfig) FRPClientRestartID

func (c *CLIConfig) FRPClientRestartID(id string, writer ...io.Writer) error

func (*CLIConfig) FRPClientStart

func (c *CLIConfig) FRPClientStart(writer ...io.Writer) (err error)

func (*CLIConfig) FRPClientStartID

func (c *CLIConfig) FRPClientStartID(id uint, writer ...io.Writer) (err error)

func (*CLIConfig) FRPClientStop

func (c *CLIConfig) FRPClientStop() error

func (*CLIConfig) FRPClientStopHistory

func (c *CLIConfig) FRPClientStopHistory(ids ...string) (err error)

func (*CLIConfig) FRPClientStopID

func (c *CLIConfig) FRPClientStopID(id string) error

func (*CLIConfig) FRPConfigFile

func (c *CLIConfig) FRPConfigFile(id uint, isServer bool) string

func (*CLIConfig) FRPPidFile

func (c *CLIConfig) FRPPidFile(id string, isServer bool) string

func (*CLIConfig) FRPRebuildConfigFile

func (c *CLIConfig) FRPRebuildConfigFile(data interface{}, configFiles ...string) error

func (*CLIConfig) FRPRestart

func (c *CLIConfig) FRPRestart(writer ...io.Writer) error

func (*CLIConfig) FRPRestartID

func (c *CLIConfig) FRPRestartID(id string, writer ...io.Writer) error

func (*CLIConfig) FRPSaveConfigFile

func (c *CLIConfig) FRPSaveConfigFile(data interface{}) (err error)

func (*CLIConfig) FRPStart

func (c *CLIConfig) FRPStart(writer ...io.Writer) (err error)

func (*CLIConfig) FRPStartID

func (c *CLIConfig) FRPStartID(id uint, writer ...io.Writer) (err error)

func (*CLIConfig) FRPStop

func (c *CLIConfig) FRPStop() error

func (*CLIConfig) FRPStopHistory

func (c *CLIConfig) FRPStopHistory(ids ...string) (err error)

func (*CLIConfig) FRPStopID

func (c *CLIConfig) FRPStopID(id string) error

func (*CLIConfig) FTPRestart

func (c *CLIConfig) FTPRestart(writer ...io.Writer) error

func (*CLIConfig) FTPStart

func (c *CLIConfig) FTPStart(writer ...io.Writer) (err error)

func (*CLIConfig) FTPStop

func (c *CLIConfig) FTPStop() error

func (*CLIConfig) FTPStopHistory

func (c *CLIConfig) FTPStopHistory() (err error)

func (*CLIConfig) GenerateIDFromConfigFileName

func (c *CLIConfig) GenerateIDFromConfigFileName(configFile string, musts ...bool) string

func (*CLIConfig) InitEnviron added in v3.6.2

func (c *CLIConfig) InitEnviron(needFindEnvFile ...bool) (err error)

func (*CLIConfig) InitFlag

func (c *CLIConfig) InitFlag(flagSet *pflag.FlagSet)

func (*CLIConfig) IsRunning

func (c *CLIConfig) IsRunning(ct string) bool

func (*CLIConfig) Kill

func (c *CLIConfig) Kill(cmd *exec.Cmd) error

func (*CLIConfig) MustFRPRebuildConfigFile

func (c *CLIConfig) MustFRPRebuildConfigFile(data interface{}, configFiles ...string) error

func (*CLIConfig) OnlyRunServer

func (c *CLIConfig) OnlyRunServer() bool

func (*CLIConfig) ParseConfig

func (c *CLIConfig) ParseConfig()

func (*CLIConfig) Pid

func (c *CLIConfig) Pid() int

func (*CLIConfig) Reload

func (c *CLIConfig) Reload(cfg *Config, cts ...string) error

func (*CLIConfig) RunStartup

func (c *CLIConfig) RunStartup()

RunStartup manager启动时同时启动的服务

func (*CLIConfig) SendSignal

func (c *CLIConfig) SendSignal(cmd *exec.Cmd, sig os.Signal) error

func (*CLIConfig) SetLogWriter

func (c *CLIConfig) SetLogWriter(cmdType string, writer ...io.Writer) error

func (*CLIConfig) WatchEnvConfig added in v3.6.2

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"`
	Caddy    caddy.Config    `json:"caddy"`
	FTP      ftp.Config      `json:"ftp"`
	Language language.Config `json:"language"`
	Download struct {
		SavePath string `json:"savePath"`
	} `json:"download"`
	//License lib.LicenseData `json:"license,omitempty"`
	Extend    echo.H `json:"extend,omitempty"`
	*Settings `json:"-"`
	// contains filtered or unexported fields
}

func InitConfig

func InitConfig() (*Config, error)

func NewConfig

func NewConfig() *Config

func (*Config) APIKey

func (c *Config) APIKey() string

func (*Config) AsDefault

func (c *Config) AsDefault()

func (*Config) Codec

func (c *Config) Codec(lengths ...int) codec.Codec

func (*Config) ConfigFromDB

func (c *Config) ConfigFromDB() echo.H

func (*Config) ConnectedDB

func (c *Config) ConnectedDB(autoConn ...bool) bool

ConnectedDB 数据库是否已连接,如果没有连接则自动连接

func (*Config) CookieConfig

func (c *Config) CookieConfig() scookie.Config

func (*Config) Decode

func (c *Config) Decode(encrypted string, keys ...string) string

func (*Config) Encode

func (c *Config) Encode(raw string, keys ...string) string

func (*Config) GenerateRandomKey

func (c *Config) GenerateRandomKey() string

func (*Config) GenerateSample added in v3.5.7

func (c *Config) GenerateSample() error

func (*Config) GetMaxRequestBodySize

func (c *Config) GetMaxRequestBodySize() int

func (*Config) InitExtend

func (c *Config) InitExtend() *Config

func (*Config) InitSecretKey

func (c *Config) InitSecretKey() *Config

func (*Config) IsEnv

func (c *Config) IsEnv(env string) bool

func (*Config) IsEnvDev

func (c *Config) IsEnvDev() bool

func (*Config) IsEnvProd

func (c *Config) IsEnvProd() bool

func (*Config) Reload

func (c *Config) Reload(newConfig *Config) error

func (*Config) SaveToFile

func (c *Config) SaveToFile() error

func (*Config) SetDebug

func (c *Config) SetDebug(on bool) *Config

func (*Config) SetDefaults added in v3.6.3

func (c *Config) SetDefaults(configFile string)

type DBOperators

type DBOperators struct {
	Source      sync.DBOperator
	Destination sync.DBOperator
}

func UpgradeMySQL

func UpgradeMySQL(schema string, syncConfig *sync.Config, cfg *Config) (DBOperators, error)

type Diff added in v3.6.2

type Diff struct {
	Old    interface{}
	New    interface{}
	IsDiff bool
}

func (Diff) String added in v3.6.2

func (d Diff) String() string

type Diffs added in v3.6.2

type Diffs map[string]*Diff

func (Diffs) Get added in v3.6.2

func (d Diffs) Get(key string) interface{}

type Email

type Email struct {
	*mail.SMTPConfig
	Timeout   int64  //超时时间(秒),采用默认引擎发信时,此项无效
	Engine    string //值为email时采用github.com/jordan-wright/email包发送,否则采用默认的github.com/admpub/mail发送
	From      string //发信人Email地址
	QueueSize int    //允许同一时间发信的数量
}

func (*Email) Init

func (c *Email) Init()

func (*Email) SetBy

func (c *Email) SetBy(r echo.H, defaults echo.H) *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) Init

func (c *Log) Init()

func (*Log) LogCategories added in v3.6.3

func (c *Log) LogCategories() []string

func (*Log) LogFile

func (c *Log) LogFile() string

func (*Log) SetBy

func (c *Log) SetBy(r echo.H, defaults echo.H) *Log

func (*Log) Show

func (c *Log) Show(ctx echo.Context) error
type Navigation struct {
	Children []*Navigation
	URL      string
	Name     string
	Label    string
	Pjax     string
	Attrs    map[string]string
}

func NewNavigation

func NewNavigation() *Navigation

type ReloadByConfig

type ReloadByConfig interface {
	ReloadByConfig(cfg *Config, args ...string) error
}

type Settings

type Settings struct {
	Email              Email  `json:"email"`
	Log                Log    `json:"log"`
	APIKey             string `json:"-"` //API密钥
	Debug              bool   `json:"debug"`
	MaxRequestBodySize int    `json:"maxRequestBodySize"`
	Base               echo.H `json:"base"`
	// contains filtered or unexported fields
}

func NewSettings

func NewSettings(config *Config) *Settings

func (*Settings) GetConfig

func (c *Settings) GetConfig() echo.H

func (*Settings) Init

func (c *Settings) Init(ctx echo.Context) error

func (*Settings) SetBy

func (c *Settings) SetBy(r echo.H, defaults echo.H) *Settings

func (*Settings) SetConfig

func (c *Settings) SetConfig(group string, ngingConfig echo.H, defaults echo.H)

func (*Settings) SetConfigs

func (c *Settings) SetConfigs(ctx echo.Context, groups ...string) error

func (*Settings) SetDebug

func (c *Settings) SetDebug(on bool)

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) bool

func (*VersionInfo) String

func (v *VersionInfo) String() string

func (*VersionInfo) VString

func (v *VersionInfo) VString() string

Directories

Path Synopsis
subconfig
sdb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL