syncthing/cmd/stindex/main.go

53 lines
1.0 KiB
Go
Raw Normal View History

2014-11-16 20:13:20 +00:00
// Copyright (C) 2014 The Syncthing Authors.
2014-09-29 19:43:32 +00:00
//
2015-03-07 20:36:35 +00:00
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.
2014-07-06 12:46:48 +00:00
package main
import (
"flag"
"fmt"
"log"
"os"
2015-10-23 19:02:38 +00:00
"path/filepath"
2014-07-06 12:46:48 +00:00
"github.com/syndtr/goleveldb/leveldb"
2015-05-04 12:01:54 +00:00
"github.com/syndtr/goleveldb/leveldb/opt"
2014-07-06 12:46:48 +00:00
)
func main() {
2015-10-23 19:02:38 +00:00
var mode string
2014-07-06 12:46:48 +00:00
log.SetFlags(0)
log.SetOutput(os.Stdout)
2015-10-23 19:02:38 +00:00
flag.StringVar(&mode, "mode", "dump", "Mode of operation: dump, dumpsize")
2014-07-06 12:46:48 +00:00
flag.Parse()
2015-10-23 19:02:38 +00:00
path := flag.Arg(0)
if path == "" {
path = filepath.Join(defaultConfigDir(), "index-v0.11.0.db")
}
fmt.Println("Path:", path)
ldb, err := leveldb.OpenFile(path, &opt.Options{
2015-05-04 12:01:54 +00:00
ErrorIfMissing: true,
Strict: opt.StrictAll,
OpenFilesCacheCapacity: 100,
})
2014-07-06 12:46:48 +00:00
if err != nil {
log.Fatal(err)
}
2015-10-23 19:02:38 +00:00
if mode == "dump" {
dump(ldb)
} else if mode == "dumpsize" {
2015-10-23 19:21:21 +00:00
dumpsize(ldb)
2015-10-23 19:02:38 +00:00
} else {
fmt.Println("Unknown mode")
2014-07-06 12:46:48 +00:00
}
}