package config import ( "local/rproxy3/storage/packable" "strings" ) func GetPort() string { v := packable.NewString() conf.Get(nsConf, flagPort, v) return ":" + strings.TrimPrefix(v.String(), ":") } func GetRoutes() map[string]string { v := packable.NewString() conf.Get(nsConf, flagRoutes, v) m := make(map[string]string) for _, v := range strings.Split(v.String(), ",") { if len(v) == 0 { return m } from := v[:strings.Index(v, ":")] to := v[strings.Index(v, ":")+1:] m[from] = to } return m } func GetSSL() (string, string, bool) { v := packable.NewString() conf.Get(nsConf, flagCert, v) certPath := v.String() conf.Get(nsConf, flagKey, v) keyPath := v.String() return certPath, keyPath, notEmpty(certPath, keyPath) } func GetAuth() (string, string, bool) { v := packable.NewString() conf.Get(nsConf, flagUser, v) user := v.String() conf.Get(nsConf, flagPass, v) pass := v.String() return user, pass, notEmpty(user, pass) } func notEmpty(s ...string) bool { for i := range s { if s[i] == "" || s[i] == "/dev/null" { return false } } return true }