Code optimized (#493)
parent
059027bc9d
commit
f98c9246b2
@ -1,58 +0,0 @@
|
|||||||
package util
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TagLookup(tag, key string) (value string, ok bool) {
|
|
||||||
tag = strings.Replace(tag, "`", "", -1)
|
|
||||||
for tag != "" {
|
|
||||||
// Skip leading space.
|
|
||||||
i := 0
|
|
||||||
for i < len(tag) && tag[i] == ' ' {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
tag = tag[i:]
|
|
||||||
if tag == "" {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scan to colon. A space, a quote or a control character is a syntax error.
|
|
||||||
// Strictly speaking, control chars include the range [0x7f, 0x9f], not just
|
|
||||||
// [0x00, 0x1f], but in practice, we ignore the multi-byte control characters
|
|
||||||
// as it is simpler to inspect the tag's bytes than the tag's runes.
|
|
||||||
i = 0
|
|
||||||
for i < len(tag) && tag[i] > ' ' && tag[i] != ':' && tag[i] != '"' && tag[i] != 0x7f {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
if i == 0 || i+1 >= len(tag) || tag[i] != ':' || tag[i+1] != '"' {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
name := string(tag[:i])
|
|
||||||
tag = tag[i+1:]
|
|
||||||
|
|
||||||
// Scan quoted string to find value.
|
|
||||||
i = 1
|
|
||||||
for i < len(tag) && tag[i] != '"' {
|
|
||||||
if tag[i] == '\\' {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
if i >= len(tag) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
qvalue := string(tag[:i+1])
|
|
||||||
tag = tag[i+1:]
|
|
||||||
|
|
||||||
if key == name {
|
|
||||||
value, err := strconv.Unquote(qvalue)
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return value, true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", false
|
|
||||||
}
|
|
@ -1,9 +1,14 @@
|
|||||||
package vars
|
package vars
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
// ProjectName the const value of zero
|
||||||
ProjectName = "zero"
|
ProjectName = "zero"
|
||||||
ProjectOpenSourceUrl = "github.com/tal-tech/go-zero"
|
// ProjectOpenSourceURL the githb url of go-zero
|
||||||
|
ProjectOpenSourceURL = "github.com/tal-tech/go-zero"
|
||||||
|
// OsWindows windows os
|
||||||
OsWindows = "windows"
|
OsWindows = "windows"
|
||||||
|
// OsMac mac os
|
||||||
OsMac = "darwin"
|
OsMac = "darwin"
|
||||||
|
// OsLinux linux os
|
||||||
OsLinux = "linux"
|
OsLinux = "linux"
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue