@@ -18,6 +18,7 @@ import (
1818 "fmt"
1919 "os"
2020 "strings"
21+ "sync"
2122
2223 "github.com/deepthawtz/kv/store"
2324 consul "github.com/hashicorp/consul/api"
@@ -63,43 +64,26 @@ func Set(cmd *cobra.Command, args []string) {
6364}
6465
6566func set (client * consul.KV , args ... string ) error {
66- // TODO: use txn when using Consul 0.7
67- // var ops []*consul.KVTxnOp
67+ var wg sync.WaitGroup
6868 for _ , raw := range args {
6969 parts := strings .Split (raw , "=" )
7070 if len (parts ) != 2 {
7171 return fmt .Errorf (help )
7272 }
73- k := strings .Join ([]string {prefix , parts [0 ]}, "/" )
74- v := parts [1 ]
75- fmt .Printf ("setting %s = %s\n " , k , v )
76- if _ , err := client .Put (& consul.KVPair {Key : k , Value : []byte (v )}, nil ); err != nil {
77- return err
78- }
7973
80- // TODO: use txn when using Consul 0.7
81- // ops = append(ops, &consul.KVTxnOp{
82- // Verb: "set",
83- // Key: fmt.Sprintf("/env/%s/%s/%s", prefix, k),
84- // Value: []byte(v),
85- // })
74+ wg .Add (1 )
75+ go func () {
76+ k := strings .Join ([]string {prefix , parts [0 ]}, "/" )
77+ v := parts [1 ]
78+ fmt .Printf ("setting %s = %s\n " , k , v )
79+ if _ , err := client .Put (& consul.KVPair {Key : k , Value : []byte (v )}, nil ); err != nil {
80+ panic (err )
81+ }
82+ wg .Done ()
83+ }()
84+
85+ wg .Wait ()
8686 }
8787
8888 return nil
89-
90- // TODO: use txn when using Consul 0.7
91- // ops := []*consul.KVTxnOp{
92- // &consul.KVTxnOp{
93- // Verb: "get",
94- // Key: fmt.Sprintf("/env/%s/%s/%s", prefix, "YO"),
95- // },
96- // }
97- // ok, resp, meta, err := kv.Txn(ops, nil)
98- // if err != nil {
99- // fmt.Println(err, resp, meta)
100- // os.Exit(-1)
101- // }
102- // if ok {
103- // fmt.Println(resp)
104- // }
10589}
0 commit comments