syncthing/cmd/stindex/main.go

50 lines
923 B
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 https://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/syncthing/syncthing/lib/db/backend"
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)
flag.StringVar(&mode, "mode", "dump", "Mode of operation: dump, dumpsize, idxck")
2015-10-23 19:02:38 +00:00
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.14.0.db")
2015-10-23 19:02:38 +00:00
}
ldb, err := backend.OpenLevelDBRO(path)
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)
} else if mode == "idxck" {
if !idxck(ldb) {
os.Exit(1)
}
2015-10-23 19:02:38 +00:00
} else {
fmt.Println("Unknown mode")
2014-07-06 12:46:48 +00:00
}
}