mirror of https://github.com/etcd-io/bbolt.git
commit
383ddb246a
|
@ -33,14 +33,6 @@ func NewApp() *cli.App {
|
||||||
Get(path, name, key)
|
Get(path, name, key)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
Name: "set",
|
|
||||||
Usage: "Sets a value for given key in a bucket",
|
|
||||||
Action: func(c *cli.Context) {
|
|
||||||
path, name, key, value := c.Args().Get(0), c.Args().Get(1), c.Args().Get(2), c.Args().Get(3)
|
|
||||||
Set(path, name, key, value)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Name: "keys",
|
Name: "keys",
|
||||||
Usage: "Retrieve a list of all keys in a bucket",
|
Usage: "Retrieve a list of all keys in a bucket",
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/boltdb/bolt"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Set sets the value for a given key in a bucket.
|
|
||||||
func Set(path, name, key, value string) {
|
|
||||||
if _, err := os.Stat(path); os.IsNotExist(err) {
|
|
||||||
fatal(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
db, err := bolt.Open(path, 0600)
|
|
||||||
if err != nil {
|
|
||||||
fatal(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
err = db.Update(func(tx *bolt.Tx) error {
|
|
||||||
|
|
||||||
// Find bucket.
|
|
||||||
b := tx.Bucket([]byte(name))
|
|
||||||
if b == nil {
|
|
||||||
fatalf("bucket not found: %s", name)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set value for a given key.
|
|
||||||
return b.Put([]byte(key), []byte(value))
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
fatal(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package main_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/boltdb/bolt"
|
|
||||||
. "github.com/boltdb/bolt/cmd/bolt"
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Ensure that a value can be set from the CLI.
|
|
||||||
func TestSet(t *testing.T) {
|
|
||||||
SetTestMode(true)
|
|
||||||
open(func(db *bolt.DB, path string) {
|
|
||||||
db.Update(func(tx *bolt.Tx) error {
|
|
||||||
tx.CreateBucket([]byte("widgets"))
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
db.Close()
|
|
||||||
assert.Equal(t, "", run("set", path, "widgets", "foo", "bar"))
|
|
||||||
assert.Equal(t, "bar", run("get", path, "widgets", "foo"))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure that an error is reported if the database is not found.
|
|
||||||
func TestSetDBNotFound(t *testing.T) {
|
|
||||||
SetTestMode(true)
|
|
||||||
output := run("set", "no/such/db", "widgets", "foo", "bar")
|
|
||||||
assert.Equal(t, "stat no/such/db: no such file or directory", output)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure that an error is reported if the bucket is not found.
|
|
||||||
func TestSetBucketNotFound(t *testing.T) {
|
|
||||||
SetTestMode(true)
|
|
||||||
open(func(db *bolt.DB, path string) {
|
|
||||||
db.Close()
|
|
||||||
output := run("set", path, "widgets", "foo", "bar")
|
|
||||||
assert.Equal(t, "bucket not found: widgets", output)
|
|
||||||
})
|
|
||||||
}
|
|
Loading…
Reference in New Issue