-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.go
74 lines (59 loc) · 1.43 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// SPDX-FileCopyrightText: 2021 The margaret Authors
//
// SPDX-License-Identifier: MIT
package main
import (
"bytes"
"fmt"
"os"
"github.com/dgraph-io/badger/v3"
"github.com/dgraph-io/sroar"
"github.com/pkg/errors"
"go.mindeco.de/logging"
)
var check = logging.CheckFatal
func main() {
if len(os.Args) < 2 {
fmt.Fprintf(os.Stderr, "usage: %s <dir> (hasAddr)", os.Args[0])
os.Exit(1)
}
logging.SetupLogging(nil)
// log := logging.Logger(os.Args[0])
dir := os.Args[1]
opts := badger.DefaultOptions(dir)
db, err := badger.Open(opts)
check(errors.Wrap(err, "error opening database"))
err = db.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
iter := txn.NewIterator(opts)
for iter.Rewind(); iter.Valid(); iter.Next() {
it := iter.Item()
k := it.Key()
var dataLen int
var debugData string
err = it.Value(func(v []byte) error {
dataLen = len(v)
if bytes.HasPrefix(k, []byte("mlog-")) {
bmap := sroar.FromBuffer(v)
debugData = bmap.String()
} else {
debugData = string(v)
}
return nil
})
check(err)
fmt.Printf("%q: %d\n", string(k), dataLen)
fmt.Println(debugData + "\n")
}
iter.Close()
return nil
})
check(err)
check(db.Close())
// // check has
// if len(os.Args) > 2 {
// addr := indexes.Addr(os.Args[2])
// has, err := multilog.Has(mlog, addr)
// log.Log("mlog", "has", "addr", addr, "has?", has, "hasErr", err)
// }
}