about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gopkgs/kv/kv.go17
1 files changed, 8 insertions, 9 deletions
diff --git a/gopkgs/kv/kv.go b/gopkgs/kv/kv.go
index 072f000eb2f0..040cc63e0e7c 100644
--- a/gopkgs/kv/kv.go
+++ b/gopkgs/kv/kv.go
@@ -5,13 +5,12 @@ import (
 	"encoding/json"
 	"io/ioutil"
 	"log"
+	"path"
 )
 
-const storePath = "./kv.json"
-
 // Return the decoded store from disk.
-func getStore() map[string]interface{} {
-	b, err := ioutil.ReadFile(storePath)
+func getStore(storePath string) map[string]interface{} {
+	b, err := ioutil.ReadFile(path.Join(storePath, "kv.json"))
 	if err != nil {
 		log.Fatal("Could not read store: ", err)
 	}
@@ -24,17 +23,17 @@ func getStore() map[string]interface{} {
 }
 
 // Set `key` to `value` in the store.
-func Set(key string, value interface{}) error {
-	state := getStore()
+func Set(storePath string, key string, value interface{}) error {
+	state := getStore(storePath)
 	state[key] = value
 	b, err := json.Marshal(state)
 	if err != nil {
 		log.Fatal("Could not encode state as JSON: ", err)
 	}
-	return ioutil.WriteFile(storePath, b, 0644)
+	return ioutil.WriteFile(path.Join(storePath, "kv.json"), b, 0644)
 }
 
 // Get `key` from the store.
-func Get(key string) interface{} {
-	return getStore()[key]
+func Get(storePath string, key string) interface{} {
+	return getStore(path.Join(storePath, "kv.json"))[key]
 }