Files
tecamino-dbm/args/args.go
2025-07-13 20:01:13 +02:00

64 lines
1.6 KiB
Go

package args
import (
"flag"
"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
}
// initialte cli arguments
func Init() *Args {
var allowOrigins models.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")
remotePort := flag.Uint("remotePort", 9500, "remote Port of gui user interface")
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,
Remote: *remotePort,
},
RootDir: *rootDir,
DBMFile: *dbmFile,
Debug: *debug,
}
if len(allowOrigins) == 0 {
allowOrigins = models.StringSlice{"http://localhost:9500"}
}
a.AllowOrigins = allowOrigins
return &a
}