package args import ( "flag" "strings" "github.com/tecamino/tecamino-dbm/cert" "github.com/tecamino/tecamino-dbm/models" ) // DBM cli arguments type Args struct { Ip string Port models.Port Cert cert.Cert AllowOrigins []string RootDir string DBMFile string Debug bool } type StringSlice []string func (s *StringSlice) String() string { return strings.Join(*s, ",") } func (s *StringSlice) Set(value string) error { *s = append(*s, value) return nil } // initialte cli arguments func Init() *Args { var allowOrigins StringSlice flag.Var(&allowOrigins, "allowOrigin", "Allowed origin (can repeat this flag)") ip := flag.String("ip", "0.0.0.0", "local ip address") organization := flag.String("org", "tecamino", "name of organization for certificate") certFile := flag.String("certFile", "./cert/cert.pem", "path of certfile") keyFile := flag.String("keyFile", "./cert/key.pem", "path of keyfile") portHttp := flag.Uint("http-port", 8100, "json server communication for http/ws") portHttps := flag.Uint("https-port", 8101, "json server communication for http/wss") rootDir := flag.String("workingDir", "./", "working directory") dbmFile := flag.String("dbm", "/test/test", "dbm file name") debug := flag.Bool("debug", false, "debug flag") flag.Parse() a := Args{ Ip: *ip, Cert: cert.Cert{ Organization: *organization, CertFile: *certFile, KeyFile: *keyFile, }, Port: models.Port{ Http: *portHttp, Https: *portHttps, }, RootDir: *rootDir, DBMFile: *dbmFile, Debug: *debug, } if len(allowOrigins) == 0 { allowOrigins = StringSlice{"http://localhost:9500"} } a.AllowOrigins = allowOrigins return &a }