2021-12-25 09:28:59 -05:00
|
|
|
package modules
|
|
|
|
|
|
|
|
var ModuleList []*Module
|
|
|
|
|
|
|
|
type Module struct {
|
2021-12-25 13:03:11 -05:00
|
|
|
Name string
|
|
|
|
Option []Option
|
|
|
|
Callback func(Callback)
|
2021-12-25 09:28:59 -05:00
|
|
|
}
|
|
|
|
|
2021-12-25 13:03:11 -05:00
|
|
|
type Option struct {
|
|
|
|
Option string
|
|
|
|
Description string
|
|
|
|
}
|
|
|
|
|
|
|
|
type CallbackType int
|
|
|
|
|
|
|
|
const (
|
|
|
|
CommandLine CallbackType = 0
|
|
|
|
Config CallbackType = 1
|
|
|
|
)
|
|
|
|
|
|
|
|
type Callback struct {
|
|
|
|
CallbackType CallbackType
|
|
|
|
Option string
|
|
|
|
Arguments []string
|
|
|
|
}
|
|
|
|
|
|
|
|
func RegisterModule(name string, option []Option, Callback func(Callback)) {
|
2021-12-25 09:28:59 -05:00
|
|
|
ModuleList = append(ModuleList, &Module{
|
2021-12-25 13:03:11 -05:00
|
|
|
Name: name,
|
|
|
|
Option: option,
|
|
|
|
Callback: Callback,
|
2021-12-25 09:28:59 -05:00
|
|
|
})
|
|
|
|
}
|