Skip to content

Commit

Permalink
added command-line -options flag
Browse files Browse the repository at this point in the history
  • Loading branch information
steveyen committed Sep 23, 2015
1 parent a690828 commit 495b25f
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 6 deletions.
18 changes: 14 additions & 4 deletions cmd/cbft/main.go
Expand Up @@ -171,7 +171,7 @@ func main() {
flags.Container, flags.Weight, flags.Extra,
flags.BindHttp, flags.DataDir,
flags.StaticDir, flags.StaticETag,
flags.Server, flags.Register, mr)
flags.Server, flags.Register, mr, flags.Options)
if err != nil {
log.Fatal(err)
}
Expand Down Expand Up @@ -217,7 +217,7 @@ func MainWelcome(flagAliases map[string][]string) {

func MainStart(cfg cbgt.Cfg, uuid string, tags []string, container string,
weight int, extras, bindHttp, dataDir, staticDir, staticETag, server string,
register string, mr *cbgt.MsgRing) (
register string, mr *cbgt.MsgRing, optionKVs string) (
*mux.Router, error) {
if server == "" {
return nil, fmt.Errorf("error: server URL required (-server)")
Expand Down Expand Up @@ -246,9 +246,19 @@ func MainStart(cfg cbgt.Cfg, uuid string, tags []string, container string,
}
}

mgr := cbgt.NewManager(cbgt.VERSION, cfg,
options := map[string]string{}
if optionKVs != "" {
for _, kv := range strings.Split(optionKVs, ",") {
a := strings.Split(kv, "=")
if len(a) >= 2 {
options[a[0]] = a[1]
}
}
}

mgr := cbgt.NewManagerEx(cbgt.VERSION, cfg,
uuid, tags, container, weight,
extras, bindHttp, dataDir, server, &MainHandlers{})
extras, bindHttp, dataDir, server, &MainHandlers{}, options)
err := mgr.Start(register)
if err != nil {
return nil, err
Expand Down
4 changes: 4 additions & 0 deletions cmd/cbft/main_flags.go
Expand Up @@ -28,6 +28,7 @@ type Flags struct {
Container string
DataDir string
Help bool
Options string
Register string
Server string
StaticDir string
Expand Down Expand Up @@ -113,6 +114,9 @@ func initFlags(flags *Flags) map[string][]string {
b(&flags.Help,
[]string{"help", "?", "H", "h"}, "", false,
"print this usage message and exit.")
s(&flags.Options,
[]string{"options"}, "KEY=VALUE,...", "",
"optional comma-separated key=value pairs for advanced configurations.")
s(&flags.Register,
[]string{"register"}, "STATE", "wanted",
"optional flag to register this node in the cluster as:"+
Expand Down
4 changes: 2 additions & 2 deletions cmd/cbft/main_test.go
Expand Up @@ -24,13 +24,13 @@ func TestMainStart(t *testing.T) {
t.Fatalf("unexpected error: %v", err)
}
router, err := MainStart(nil, cbgt.NewUUID(), nil, "", 1, "", ":1000",
"bad data dir", "./static", "etag", "", "", mr)
"bad data dir", "./static", "etag", "", "", mr, "k=v,k2=v2")
if router != nil || err == nil {
t.Errorf("expected empty server string to fail mainStart()")
}

router, err = MainStart(nil, cbgt.NewUUID(), nil, "", 1, "", ":1000",
"bad data dir", "./static", "etag", "bad server", "", mr)
"bad data dir", "./static", "etag", "bad server", "", mr, "")
if router != nil || err == nil {
t.Errorf("expected bad server string to fail mainStart()")
}
Expand Down

0 comments on commit 495b25f

Please sign in to comment.