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"` }