gosh/persistentdb.go

52 lines
782 B
Go

package main
import (
"encoding/json"
"fmt"
"github.com/vbatts/go-gdbm"
"os"
)
func main() {
db, err := gdbm.Open("foo.db", "c")
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
defer db.Close()
k, err := db.FirstKey()
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
for {
v, err := db.Fetch(k)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
c := Command{}
err = json.Unmarshal([]byte(v), &c)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Printf("#v\n", c)
k, err = db.NextKey(k)
if err == gdbm.NoError {
break
} else if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
}
type Command struct {
Cmd string `json:"cmd"`
Times []int64 `json:"time"`
}