mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 23:20:25 +08:00
增加edge-node config命令
This commit is contained in:
@@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
"github.com/iwind/TeaGo/types"
|
"github.com/iwind/TeaGo/types"
|
||||||
"github.com/iwind/gosock/pkg/gosock"
|
"github.com/iwind/gosock/pkg/gosock"
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
@@ -30,7 +31,7 @@ func main() {
|
|||||||
var app = apps.NewAppCmd().
|
var app = apps.NewAppCmd().
|
||||||
Version(teaconst.Version).
|
Version(teaconst.Version).
|
||||||
Product(teaconst.ProductName).
|
Product(teaconst.ProductName).
|
||||||
Usage(teaconst.ProcessName + " [-v|start|stop|restart|status|quit|test|reload|service|daemon|pprof|accesslog|uninstall]").
|
Usage(teaconst.ProcessName + " [-v|start|stop|restart|status|quit|test|reload|service|daemon|config|pprof|accesslog|uninstall]").
|
||||||
Usage(teaconst.ProcessName + " [trackers|goman|conns|gc|bandwidth|disk|cache.garbage]").
|
Usage(teaconst.ProcessName + " [trackers|goman|conns|gc|bandwidth|disk|cache.garbage]").
|
||||||
Usage(teaconst.ProcessName + " [ip.drop|ip.reject|ip.remove|ip.close] IP")
|
Usage(teaconst.ProcessName + " [ip.drop|ip.reject|ip.remove|ip.close] IP")
|
||||||
|
|
||||||
@@ -524,6 +525,41 @@ func main() {
|
|||||||
fmt.Println("[ERROR]" + params.GetString("error"))
|
fmt.Println("[ERROR]" + params.GetString("error"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
app.On("config", func() {
|
||||||
|
var configString = os.Args[len(os.Args)-1]
|
||||||
|
if configString == "config" {
|
||||||
|
fmt.Println("Usage: edge-node config '\nrpc.endpoints: [\"...\"]\nnodeId: \"...\"\nsecret: \"...\"\n'")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var config = &configs.APIConfig{}
|
||||||
|
err := yaml.Unmarshal([]byte(configString), config)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("[ERROR]decode config failed: " + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = config.Init()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("[ERROR]validate config failed: " + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// marshal again
|
||||||
|
configYAML, err := yaml.Marshal(config)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("[ERROR]encode config failed: " + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = os.WriteFile(Tea.Root + "/configs/api_node.yaml", configYAML, 0666)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("[ERROR]write config failed: " + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("success")
|
||||||
|
})
|
||||||
app.Run(func() {
|
app.Run(func() {
|
||||||
var node = nodes.NewNode()
|
var node = nodes.NewNode()
|
||||||
node.Start()
|
node.Start()
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ const oldConfigFileName = "api.yaml"
|
|||||||
|
|
||||||
type APIConfig struct {
|
type APIConfig struct {
|
||||||
OldRPC struct {
|
OldRPC struct {
|
||||||
Endpoints []string `yaml:"endpoints" json:"endpoints"`
|
Endpoints []string `yaml:"endpoints,omitempty" json:"endpoints"`
|
||||||
DisableUpdate bool `yaml:"disableUpdate" json:"disableUpdate"`
|
DisableUpdate bool `yaml:"disableUpdate,omitempty" json:"disableUpdate"`
|
||||||
} `yaml:"rpc,omitempty" json:"rpc"`
|
} `yaml:"rpc,omitempty" json:"rpc"`
|
||||||
|
|
||||||
RPCEndpoints []string `yaml:"rpc.endpoints,flow" json:"rpc.endpoints"`
|
RPCEndpoints []string `yaml:"rpc.endpoints,flow" json:"rpc.endpoints"`
|
||||||
|
|||||||
Reference in New Issue
Block a user