11package config
22
3- import (
4- "encoding/json"
5-
6- "github.com/pkg/errors"
7- )
8-
3+ //go:generate go run github.com/a8m/syncmap -o "gen_plugin_map.go" -pkg config -name PluginMap "map[string]*Plugin"
94var (
105 Fragment = false // 是否分片
116 Port = "9000"
127 SMS = false
138 Device = ""
14- Conf = & GmcConfig {
15- //SMS: false,
16- //Port: "9000",
17- ServerGroups : []* ServerGroup {
18- {
19- Name : "default" ,
20- Disabled : false ,
21- Json : false ,
22- Urls : []string {"ws://localhost:8081/ws/cq/" },
23- EventFilter : []int32 {},
24- RegexFilter : "" ,
25- RegexReplace : "" ,
26- ExtraHeader : map [string ][]string {
27- "User-Agent" : {"GMC" },
28- },
29- },
30- },
31- }
9+ Plugins = & PluginMap {}
3210 HttpAuth = map [string ]string {}
3311)
3412
35- type GmcConfig struct {
36- //Port string `json:"port"` // 管理端口
37- //SMS bool `json:"sms"` // 设备锁是否优先使用短信认证
38- ServerGroups []* ServerGroup `json:"server_groups"` // 服务器组
13+ func init () {
14+ Plugins .Store ("default" , & Plugin {
15+ Name : "default" ,
16+ Disabled : false ,
17+ Json : false ,
18+ Urls : []string {"ws://localhost:8081/ws/cq/" },
19+ EventFilter : []int32 {},
20+ RegexFilter : "" ,
21+ RegexReplace : "" ,
22+ ExtraHeader : map [string ][]string {
23+ "User-Agent" : {"GMC" },
24+ },
25+ })
3926}
4027
41- type ServerGroup struct {
42- Name string `json:"name"` // 功能名称
28+ func ClearPlugins (pluginMap * PluginMap ) {
29+ pluginMap .Range (func (key string , value * Plugin ) bool {
30+ pluginMap .Delete (key )
31+ return true
32+ })
33+ }
34+
35+ type Plugin struct {
36+ Name string `json:"-"` // 功能名称
4337 Disabled bool `json:"disabled"` // 不填false默认启用
4438 Json bool `json:"json"` // json上报
4539 Urls []string `json:"urls"` // 服务器列表
@@ -49,17 +43,3 @@ type ServerGroup struct {
4943 ExtraHeader map [string ][]string `json:"extra_header"` // 自定义请求头
5044 // TODO event filter, msg filter, regex filter, prefix filter, suffix filter
5145}
52-
53- func (g * GmcConfig ) ReadJson (d []byte ) error {
54- var fileConfig GmcConfig
55- if err := json .Unmarshal (d , & fileConfig ); err != nil {
56- return errors .Wrap (err , "failed to unmarshal json GmcConfig" )
57- }
58- * g = fileConfig
59- return nil
60- }
61-
62- func (g * GmcConfig ) ToJson () []byte {
63- b , _ := json .MarshalIndent (g , "" , " " )
64- return b
65- }
0 commit comments