update(all): use namsral/flag in main
This commit is contained in:
27
cmd/crm/flags.go
Normal file
27
cmd/crm/flags.go
Normal file
@@ -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
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
27
cmd/sam/flags.go
Normal file
27
cmd/sam/flags.go
Normal file
@@ -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
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user