main.go 931 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "log"
  6. "os"
  7. "github.com/calmh/syncthing/files"
  8. "github.com/calmh/syncthing/protocol"
  9. "github.com/syndtr/goleveldb/leveldb"
  10. )
  11. func main() {
  12. log.SetFlags(0)
  13. log.SetOutput(os.Stdout)
  14. repo := flag.String("repo", "default", "Repository ID")
  15. node := flag.String("node", "", "Node ID (blank for global)")
  16. flag.Parse()
  17. db, err := leveldb.OpenFile(flag.Arg(0), nil)
  18. if err != nil {
  19. log.Fatal(err)
  20. }
  21. fs := files.NewSet(*repo, db)
  22. if *node == "" {
  23. log.Printf("*** Global index for repo %q", *repo)
  24. fs.WithGlobal(func(f protocol.FileInfo) bool {
  25. fmt.Println(f)
  26. fmt.Println("\t", fs.Availability(f.Name))
  27. return true
  28. })
  29. } else {
  30. n, err := protocol.NodeIDFromString(*node)
  31. if err != nil {
  32. log.Fatal(err)
  33. }
  34. log.Printf("*** Have index for repo %q node %q", *repo, n)
  35. fs.WithHave(n, func(f protocol.FileInfo) bool {
  36. fmt.Println(f)
  37. return true
  38. })
  39. }
  40. }