From 43d11428fe0e02284a9bd35ba368c21afba5c764 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Tue, 17 Jul 2018 10:52:01 +0200 Subject: [PATCH] Make CRM configurable through .env and part of realize config --- .env.sample | 5 ++++- .realize.yaml | 23 ++++++++++++++++++++++- cmd/crm/main.go | 27 ++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/.env.sample b/.env.sample index cc4191eaa..8b8fefe4b 100644 --- a/.env.sample +++ b/.env.sample @@ -1,2 +1,5 @@ SAM_HTTP_ADDR=:3000 -SAM_DB_DSN=crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci +SAM_DB_DSN=crust:crust@tcp(localhost:3306)/crust?collation=utf8mb4_general_ci + +CRM_HTTP_ADDR=:3001 +CRM_DB_DSN=crust:crust@tcp(localhost:3306)/crust?collation=utf8mb4_general_ci diff --git a/.realize.yaml b/.realize.yaml index 383dfd42c..dedeb6f01 100755 --- a/.realize.yaml +++ b/.realize.yaml @@ -18,7 +18,7 @@ settings: server: status: false schema: -- name: crust +- name: sam path: cmd/sam commands: vet: @@ -39,3 +39,24 @@ schema: - .git - .realize - vendor +- name: crm + path: cmd/crm + commands: + vet: + status: true + test: + status: false + run: + status: true + args: + - api + watcher: + paths: + - . + - ../../crm + extensions: + - go + ignored_paths: + - .git + - .realize + - vendor diff --git a/cmd/crm/main.go b/cmd/crm/main.go index c50f0313e..4405f7a30 100644 --- a/cmd/crm/main.go +++ b/cmd/crm/main.go @@ -9,11 +9,20 @@ import ( "net/http" "github.com/go-chi/chi" + _ "github.com/joho/godotenv/autoload" "github.com/crusttech/crust/crm/rest" "github.com/titpetric/factory" ) +const ( + defaultAddr = ":3000" + defaultDsn = "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci" + + envVarKey_HTTP_ADDR = "CRM_HTTP_ADDR" + envVarKey_DB_DSN = "CRM_DB_DSN" +) + func handleError(err error, message string) { if message == "" { message = "Error making API call" @@ -24,11 +33,23 @@ func handleError(err error, message string) { } func main() { - // set up flags + 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 ( - 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") + // set up flags + addr = flag.String("addr", envHttpAddr, "Listen address for HTTP server") + dsn = flag.String("dsn", envDbDsn, "DSN for database connection") ) + println(*dsn) flag.Parse() // log to stdout not stderr