32 lines
803 B
Go
32 lines
803 B
Go
|
package node
|
|||
|
|
|||
|
// WithAppBootFlag 设置app的起服参数,flags必须为结构体指针!
|
|||
|
// 只支持string/int/int64/bool四种字段类型,例如:
|
|||
|
//
|
|||
|
// type Flags struct {
|
|||
|
// F1 string `env:"id" desc:"boot id" default:"default value"`
|
|||
|
// F2 int `env:"num" desc:"number" default:"3"`
|
|||
|
// }
|
|||
|
// WithAppBootFlag(&Flags{})
|
|||
|
func WithAppBootFlag(flag interface{}) AppOption {
|
|||
|
return appOptionFunction(func(app *Application) {
|
|||
|
app.bootFlag = flag
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
func WithAppStopTask(desc string, task Task) AppOption {
|
|||
|
return appOptionFunction(func(app *Application) {
|
|||
|
app.stopTasks = append(app.stopTasks, pair{desc, task})
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
type AppOption interface {
|
|||
|
Apply(scd *Application)
|
|||
|
}
|
|||
|
|
|||
|
type appOptionFunction func(app *Application)
|
|||
|
|
|||
|
func (of appOptionFunction) Apply(app *Application) {
|
|||
|
of(app)
|
|||
|
}
|