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
Ben Johnson 2014-05-05 07:48:45 -06:00
parent f860b35c4e
commit c22d2e03bc
3 changed files with 0 additions and 87 deletions

View File

@ -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",

View File

@ -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
}
}

View File

@ -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)
})
}