代码拉取完成,页面将自动刷新
同步操作将从 赵建辉/rttys 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"flag"
"github.com/kylelemons/go-gypsy/yaml"
"github.com/rs/zerolog/log"
"os"
"strconv"
"strings"
)
type RttysConfig struct {
addrDev string
addrUser string
sslCert string
sslKey string
httpUsername string
httpPassword string
token string
fontSize int
whiteList map[string]bool
}
func getConfigOpt(yamlCfg *yaml.File, name string, opt interface{}) {
val, err := yamlCfg.Get(name)
if err != nil {
return
}
switch opt := opt.(type) {
case *string:
*opt = val
case *int:
*opt, _ = strconv.Atoi(val)
}
}
func parseConfig() *RttysConfig {
cfg := &RttysConfig{}
cfg.whiteList = make(map[string]bool)
flag.StringVar(&cfg.addrDev, "addr-dev", ":5912", "address to listen device")
flag.StringVar(&cfg.addrUser, "addr-user", ":5913", "address to listen user")
flag.StringVar(&cfg.sslCert, "ssl-cert", "", "certFile Path")
flag.StringVar(&cfg.sslKey, "ssl-key", "", "keyFile Path")
flag.StringVar(&cfg.httpUsername, "http-username", "", "username for http auth")
flag.StringVar(&cfg.httpPassword, "http-password", "", "password for http auth")
flag.StringVar(&cfg.token, "token", "", "token to use")
conf := flag.String("conf", "./rttys.conf", "config file to load")
genToken := flag.Bool("gen-token", false, "generate token")
whiteList := flag.String("white-list", "", "white list(device IDs separated by spaces or *)")
if *whiteList == "*" {
cfg.whiteList = nil
} else {
for _, id := range strings.Fields(*whiteList) {
cfg.whiteList[id] = true
}
}
flag.Parse()
if *genToken {
genTokenAndExit()
}
yamlCfg, err := yaml.ReadFile(*conf)
if err == nil {
getConfigOpt(yamlCfg, "addr-dev", &cfg.addrDev)
getConfigOpt(yamlCfg, "addr-user", &cfg.addrUser)
getConfigOpt(yamlCfg, "ssl-cert", &cfg.sslCert)
getConfigOpt(yamlCfg, "ssl-key", &cfg.sslKey)
getConfigOpt(yamlCfg, "http-username", &cfg.httpUsername)
getConfigOpt(yamlCfg, "http-password", &cfg.httpPassword)
getConfigOpt(yamlCfg, "token", &cfg.token)
getConfigOpt(yamlCfg, "font-size", &cfg.fontSize)
val, err := yamlCfg.Get("white-list")
if err == nil {
if val == "*" || val == "\"*\"" {
cfg.whiteList = nil
} else {
for _, id := range strings.Fields(val) {
cfg.whiteList[id] = true
}
}
}
}
if cfg.fontSize == 0 {
cfg.fontSize = 16
}
if cfg.fontSize < 12 {
cfg.fontSize = 12
}
if cfg.sslCert != "" && cfg.sslKey != "" {
_, err := os.Lstat(cfg.sslCert)
if err != nil {
log.Error().Msg(err.Error())
cfg.sslCert = ""
}
_, err = os.Lstat(cfg.sslKey)
if err != nil {
log.Error().Msg(err.Error())
cfg.sslKey = ""
}
}
return cfg
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。