From 5c6d05b9ffa82de740837eadca033e207e85e6d0 Mon Sep 17 00:00:00 2001 From: Tit Petric Date: Tue, 17 Jul 2018 11:09:06 +0200 Subject: [PATCH] update(all): use namsral/flag in main --- cmd/crm/flags.go | 27 +++++++++++++++++++++++++++ cmd/crm/main.go | 19 ++++++++----------- cmd/sam/flags.go | 27 +++++++++++++++++++++++++++ cmd/sam/main.go | 37 +++++-------------------------------- 4 files changed, 67 insertions(+), 43 deletions(-) create mode 100644 cmd/crm/flags.go create mode 100644 cmd/sam/flags.go diff --git a/cmd/crm/flags.go b/cmd/crm/flags.go new file mode 100644 index 000000000..066674de4 --- /dev/null +++ b/cmd/crm/flags.go @@ -0,0 +1,27 @@ +package main + +import ( + "github.com/namsral/flag" + _ "github.com/joho/godotenv/autoload" + + "github.com/crusttech/crust/rbac" +) + +type configuration struct { + httpAddr string + dbDSN string +} + +func flags(prefix string) configuration { + var config configuration + + p := func(s string) string { + return prefix + "-" + s + } + + flag.StringVar(&config.addr, p("http-addr"), ":3000", "Listen address for HTTP server") + flag.StringVar(&config.dsn, p("db-dsn"), "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci", "DSN for database connection") + rbac.Flags() + flag.Parse() + return config +} \ No newline at end of file diff --git a/cmd/crm/main.go b/cmd/crm/main.go index c50f0313e..53a267362 100644 --- a/cmd/crm/main.go +++ b/cmd/crm/main.go @@ -1,7 +1,6 @@ package main import ( - "flag" "log" "net" "os" @@ -10,6 +9,9 @@ import ( "github.com/go-chi/chi" + "github.com/namsral/flag" + + "github.com/crusttech/crust/rbac" "github.com/crusttech/crust/crm/rest" "github.com/titpetric/factory" ) @@ -24,26 +26,21 @@ func handleError(err error, message string) { } func main() { - // set up flags - var ( - addr = flag.String("addr", ":3000", "Listen address for HTTP server") - dsn = flag.String("dsn", "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci", "DSN for database connection") - ) - flag.Parse() + config := flags("crm") // log to stdout not stderr log.SetOutput(os.Stdout) // set up database connection - factory.Database.Add("default", dsn) + factory.Database.Add("default", config.dbDSN) db, err := factory.Database.Get() handleError(err, "Can't connect to database") db.Profiler = &factory.Database.ProfilerStdout // listen socket for http server - log.Println("Starting http server on address " + *addr) - listener, err := net.Listen("tcp", *addr) - handleError(err, "Can't listen on addr "+*addr) + log.Println("Starting http server on address " + config.httpAddr) + listener, err := net.Listen("tcp", config.httpAddr) + handleError(err, "Can't listen on addr "+config.httpAddr) // route options routeOptions, err := RouteOptions{}.New() diff --git a/cmd/sam/flags.go b/cmd/sam/flags.go new file mode 100644 index 000000000..066674de4 --- /dev/null +++ b/cmd/sam/flags.go @@ -0,0 +1,27 @@ +package main + +import ( + "github.com/namsral/flag" + _ "github.com/joho/godotenv/autoload" + + "github.com/crusttech/crust/rbac" +) + +type configuration struct { + httpAddr string + dbDSN string +} + +func flags(prefix string) configuration { + var config configuration + + p := func(s string) string { + return prefix + "-" + s + } + + flag.StringVar(&config.addr, p("http-addr"), ":3000", "Listen address for HTTP server") + flag.StringVar(&config.dsn, p("db-dsn"), "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci", "DSN for database connection") + rbac.Flags() + flag.Parse() + return config +} \ No newline at end of file diff --git a/cmd/sam/main.go b/cmd/sam/main.go index 06ea71814..dc1f742d4 100644 --- a/cmd/sam/main.go +++ b/cmd/sam/main.go @@ -1,7 +1,6 @@ package main import ( - "flag" "log" "net" "os" @@ -9,20 +8,11 @@ import ( "net/http" "github.com/go-chi/chi" - _ "github.com/joho/godotenv/autoload" "github.com/crusttech/crust/sam/rest" "github.com/titpetric/factory" ) -const ( - defaultAddr = ":3000" - defaultDsn = "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci" - - envVarKey_HTTP_ADDR = "SAM_HTTP_ADDR" - envVarKey_DB_DSN = "SAM_DB_DSN" -) - func handleError(err error, message string) { if message == "" { message = "Error making API call" @@ -33,38 +23,21 @@ func handleError(err error, message string) { } func main() { - var envHttpAddr, envDbDsn string - var has bool - - if envHttpAddr, has = os.LookupEnv(envVarKey_HTTP_ADDR); !has { - envHttpAddr = defaultAddr - } - - if envDbDsn, has = os.LookupEnv(envVarKey_DB_DSN); !has { - envDbDsn = defaultDsn - } - - var ( - // set up flags - addr = flag.String("addr", envHttpAddr, "Listen address for HTTP server") - dsn = flag.String("dsn", envDbDsn, "DSN for database connection") - ) - - flag.Parse() + config := flags("sam") // log to stdout not stderr log.SetOutput(os.Stdout) // set up database connection - factory.Database.Add("default", dsn) + factory.Database.Add("default", config.dbDSN) db, err := factory.Database.Get() handleError(err, "Can't connect to database") db.Profiler = &factory.Database.ProfilerStdout // listen socket for http server - log.Println("Starting http server on address " + *addr) - listener, err := net.Listen("tcp", *addr) - handleError(err, "Can't listen on addr "+*addr) + log.Println("Starting http server on address " + config.httpAddr) + listener, err := net.Listen("tcp", config.httpAddr) + handleError(err, "Can't listen on addr "+config.httpAddr) // route options routeOptions, err := RouteOptions{}.New()