package main

import "github.com/fd0/khepri/backend"

// func fsck_tree(be backend.Server, id backend.ID) (bool, error) {
// 	log.Printf("  checking dir %s", id)

// 	buf, err := be.GetBlob(id)
// 	if err != nil {
// 		return false, err
// 	}

// 	tree := &khepri.Tree{}
// 	err = json.Unmarshal(buf, tree)
// 	if err != nil {
// 		return false, err
// 	}

// 	if !id.Equal(backend.IDFromData(buf)) {
// 		return false, nil
// 	}

// 	return true, nil
// }

// func fsck_snapshot(be backend.Server, id backend.ID) (bool, error) {
// 	log.Printf("checking snapshot %s", id)

// 	sn, err := khepri.LoadSnapshot(be, id)
// 	if err != nil {
// 		return false, err
// 	}

// 	return fsck_tree(be, sn.Content)
// }

func commandFsck(be backend.Server, args []string) error {
	// var snapshots backend.IDs
	// var err error

	// if len(args) != 0 {
	// 	snapshots = make(backend.IDs, 0, len(args))

	// 	for _, arg := range args {
	// 		id, err := backend.ParseID(arg)
	// 		if err != nil {
	// 			log.Fatal(err)
	// 		}

	// 		snapshots = append(snapshots, id)
	// 	}
	// } else {
	// 	snapshots, err = be.ListRefs()

	// 	if err != nil {
	// 		log.Fatalf("error reading list of snapshot IDs: %v", err)
	// 	}
	// }

	// log.Printf("checking %d snapshots", len(snapshots))

	// for _, id := range snapshots {
	// 	ok, err := fsck_snapshot(be, id)

	// 	if err != nil {
	// 		log.Printf("error checking snapshot %s: %v", id, err)
	// 		continue
	// 	}

	// 	if !ok {
	// 		log.Printf("snapshot %s failed", id)
	// 	}
	// }

	return nil
}