mirror of https://github.com/hak5/bolt.git
Remove 'bolt set'.
This commit removes the 'set' command in the Bolt CLI. It proved to not be very useful so there's no point in keeping the extra code around.master
parent
f860b35c4e
commit
c22d2e03bc
|
@ -33,14 +33,6 @@ func NewApp() *cli.App {
|
|||
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",
|
||||
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