Newer
Older
"strings"
"github.com/iotaledger/goshimmer/packages/events"
"github.com/iotaledger/goshimmer/packages/node"
"github.com/iotaledger/goshimmer/packages/parameter"
func getFlagName(paramName string) string {
return strings.Replace(strings.Replace(strings.ToLower(paramName), "/", "-", 1), "_", "-", -1)
}
func onAddBoolParameter(param *parameter.BoolParameter) {
AddBoolParameter(param.Value, getFlagName(param.Name), param.Description)
func onAddIntParameter(param *parameter.IntParameter) {
AddIntParameter(param.Value, getFlagName(param.Name), param.Description)
}
func onAddStringParameter(param *parameter.StringParameter) {
AddStringParameter(param.Value, getFlagName(param.Name), param.Description)
}
func onAddPlugin(name string, status int) {
AddPluginStatus(node.GetPluginIdentifier(name), status)
for _, param := range parameter.GetBools() {
onAddBoolParameter(param)
}
for _, param := range parameter.GetInts() {
onAddIntParameter(param)
}
for _, param := range parameter.GetStrings() {
onAddStringParameter(param)
}
for name, status := range parameter.GetPlugins() {
onAddPlugin(name, status)
}
parameter.Events.AddBool.Attach(events.NewClosure(onAddBoolParameter))
parameter.Events.AddInt.Attach(events.NewClosure(onAddIntParameter))
parameter.Events.AddString.Attach(events.NewClosure(onAddStringParameter))
parameter.Events.AddPlugin.Attach(events.NewClosure(onAddPlugin))
func parseParameters() {
for _, pluginName := range strings.Fields(*node.DISABLE_PLUGINS.Value) {
node.DisabledPlugins[strings.ToLower(pluginName)] = true
}
for _, pluginName := range strings.Fields(*node.ENABLE_PLUGINS.Value) {
node.EnabledPlugins[strings.ToLower(pluginName)] = true
}
}
fmt.Println(" _____ _ _ ________ ______ ___ ___________ ")
fmt.Println(" / ___| | | |_ _| \\/ || \\/ || ___| ___ \\")
fmt.Println(" \\ `--.| |_| | | | | . . || . . || |__ | |_/ /")
fmt.Println(" `--. \\ _ | | | | |\\/| || |\\/| || __|| / ")
fmt.Println(" /\\__/ / | | |_| |_| | | || | | || |___| |\\ \\ ")
fmt.Println(" \\____/\\_| |_/\\___/\\_| |_/\\_| |_/\\____/\\_| \\_| fullnode 0.0.1")
fmt.Println()
ctx.Node.LogInfo("Node", "Loading plugins ...")
}
func run(ctx *node.Plugin) {
// do nothing; everything is handled in the configure step
}
var PLUGIN = node.NewPlugin("CLI", node.Enabled, configure, run)