forked from mwitkow/go-flagz
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cli.go
51 lines (42 loc) · 1.25 KB
/
cli.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2015 Michal Witkowski. All Rights Reserved.
// See LICENSE for licensing terms.
package main
import (
"log"
"os"
"time"
etcd "github.com/coreos/etcd/client"
"github.com/mwitkow/go-flagz"
"github.com/mwitkow/go-flagz/watcher"
flag "github.com/spf13/pflag"
)
var (
myFlagSet = flag.NewFlagSet("custom_flagset", flag.ContinueOnError)
staticInt = myFlagSet.Int32("example_my_static_int", 8080, "some static int int")
dynStr = flagz.DynString(myFlagSet, "example_my_dynamic_string", "initial_value", "someusage")
dynInt = flagz.DynInt64(myFlagSet, "example_my_dynamic_int", 1337, "someusage int")
)
func main() {
myFlagSet.Parse(os.Args[1:])
logger := log.New(os.Stderr, "wr ", log.LstdFlags)
client, err := etcd.New(etcd.Config{Endpoints: []string{"http://localhost:2379"}})
if err != nil {
logger.Fatalf("Failed setting up %v", err)
}
w, err := watcher.New(myFlagSet, etcd.NewKeysAPI(client), "/example/flagz", logger)
if err != nil {
logger.Fatalf("Failed setting up %v", err)
}
err = w.Initialize()
if err != nil {
logger.Fatalf("Failed setting up %v", err)
}
w.Start()
for true {
logger.Printf("staticint: %v dynint: %v dynstring: %v",
*staticInt,
dynInt.Get(),
dynStr.Get())
time.Sleep(1500 * time.Millisecond)
}
}