You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
986 B
35 lines
986 B
package main |
|
|
|
import ( |
|
"io/ioutil" |
|
"regexp" |
|
) |
|
|
|
var ( |
|
_BmPattern = `(\w+)\s*(:?=)\s*bm\.Default\(\)((?:\n.*?)+)\s*\w+\.Serve\(.*?\,\s*c\..*?\);\s*(\w+)\s*!=\s*nil\s*{(\n*)(.*)\.Error\(.*\,\s*\w+\)` |
|
_BmReplace = `${1} ${2} bm.DefaultServer(c.BM)${3} ${1}.Start(); ${4} != nil {${5}${6}.Error("bm.DefaultServer error(%v)", ${4})` |
|
// _BmConfPattern = `type\sConfig\sstruct\s*{((?:.*?\n)+?)(?:(?:\s*BM\s+\*\w+\n((?:.*?\n)+?)^})|(?:(.*?)^}))` |
|
// _BmConfReplace = `type Config struct {\{1}\tBM *bm.ServerConfig\n\{2}}` |
|
// _confPath = "/../conf/conf.go" |
|
) |
|
|
|
func upBladeMaster(files []string) (err error) { |
|
for _, file := range files { |
|
var bs []byte |
|
if bs, err = ioutil.ReadFile(file); err != nil { |
|
return |
|
} |
|
var reg *regexp.Regexp |
|
if reg, err = regexp.Compile(_BmPattern); err != nil { |
|
return |
|
} |
|
if !reg.Match(bs) { |
|
continue |
|
} |
|
bs = reg.ReplaceAll(bs, []byte(_BmReplace)) |
|
if err = ioutil.WriteFile(file, bs, 0644); err != nil { |
|
return |
|
} |
|
} |
|
return |
|
}
|
|
|