From f768d2f9f68944f79ccbcfce0ebffddde9d59688 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Fri, 7 Apr 2017 13:42:12 -0400 Subject: [PATCH] *: bubble the dbhandler up to cli Signed-off-by: Vincent Batts --- config/config.go | 5 +++++ imgsrv.go | 10 ++++++++-- server.go | 29 ++++++++++++++++++----------- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/config/config.go b/config/config.go index 07dfe5b..908b60e 100644 --- a/config/config.go +++ b/config/config.go @@ -2,6 +2,7 @@ package config import ( "io/ioutil" + "launchpad.net/goyaml" ) @@ -9,6 +10,7 @@ type Config struct { Server bool // Run as server, if different than false (server) Ip string // Bind address, if different than 0.0.0.0 (server) Port string // listen port, if different than '7777' (server) + DbHandler string // "mongo" (server) MongoHost string // mongoDB host, if different than 'localhost' (server) MongoDbName string // mongoDB db name, if different than 'filesrv' (server) MongoUsername string // mongoDB username, if any (server) @@ -52,6 +54,9 @@ func (c *Config) Merge(other *Config) error { if len(other.Port) > 0 { c.Port = other.Port } + if len(other.DbHandler) > 0 { + c.DbHandler = other.DbHandler + } if len(other.MongoHost) > 0 { c.MongoHost = other.MongoHost } diff --git a/imgsrv.go b/imgsrv.go index f5f5665..e4a5bc2 100644 --- a/imgsrv.go +++ b/imgsrv.go @@ -26,6 +26,7 @@ var ( Server: false, Ip: "0.0.0.0", Port: "7777", + DbHandler: "mongo", MongoHost: "localhost", MongoDbName: "filesrv", MongoUsername: "", @@ -78,9 +79,9 @@ func main() { log.Println("Please provide files to be uploaded!") return } - params := map[string]string{} + params := map[string]string{} if len(FileKeywords) > 0 { - params["keywords"] = FileKeywords + params["keywords"] = FileKeywords } else { log.Println("WARN: you didn't provide any keywords :-(") } @@ -124,6 +125,11 @@ func init() { DefaultConfig.Port, "Port to listen on (if running as a server)('port' in the config)") + flag.StringVar(&DefaultConfig.DbHandler, + "dbhandler", + DefaultConfig.DbHandler, + "Database backend handler (if runnint as a server)") + /* MongoDB settings */ flag.StringVar(&DefaultConfig.MongoHost, "mongo-host", diff --git a/server.go b/server.go index 175ca78..b0656a1 100644 --- a/server.go +++ b/server.go @@ -33,17 +33,24 @@ var ( func runServer(c *config.Config) { serverConfig = *c - du = dbutil.Handles["mongo"] - duConfig := struct { - Seed string - User string - Pass string - DbName string - }{ - serverConfig.MongoHost, - serverConfig.MongoUsername, - serverConfig.MongoPassword, - serverConfig.MongoDbName, + var duConfig interface{} + var ok bool + if du, ok = dbutil.Handles[serverConfig.DbHandler]; !ok { + log.Fatalf("DbHandler %q not found", serverConfig.DbHandler) + } + + if serverConfig.DbHandler == "mongo" { + duConfig = struct { + Seed string + User string + Pass string + DbName string + }{ + serverConfig.MongoHost, + serverConfig.MongoUsername, + serverConfig.MongoPassword, + serverConfig.MongoDbName, + } } if err := du.Init(json.Marshal(duConfig)); err != nil {