func handleStatus(ctx *cli.Context, client *daemon.Client) error { status, err := client.Status() if err != nil { return err } statusCmt := status.Commit if statusCmt == nil { return fmt.Errorf("Empty status commit in response.") } checkpoints := statusCmt.Checkpoints if len(checkpoints) == 0 { fmt.Println("Nothing to commit.") return nil } userToChanges := make(map[id.ID]changeByType) for _, pckp := range checkpoints { byAuthor, ok := userToChanges[id.ID(pckp.Author)] if !ok { byAuthor = make(changeByType) userToChanges[id.ID(pckp.Author)] = byAuthor } byAuthor[pckp.Change] = append(byAuthor[pckp.Change], pckp) } for user, changesByuser := range userToChanges { fmt.Printf( "Changes by %s:\n", colors.Colorize(string(user), colors.Magenta), ) printChangesByUser(changesByuser) } return nil }
func withEmptyStore(t *testing.T, f func(*store.Store)) { ipfsPath := filepath.Join(TestPath, "ipfs") testwith.WithIpfsAtPath(t, ipfsPath, func(node *ipfsutil.Node) { if err := os.MkdirAll(TestPath, 0744); err != nil { t.Errorf("Could not create store dir at %s: %v", TestPath, err) return } defer func() { if err := os.RemoveAll(TestPath); err != nil { t.Errorf("Could not remove temp dir for empty store.") return } }() // We need the filesystem for ipfs here: peer := id.NewPeer( id.ID("[email protected]/desktop"), store.EmptyHash.B58String(), ) st, err := store.Open(TestPath, peer, node) if err != nil { t.Errorf("Could not open empty store at %s: %v", TestPath, err) return } f(st) if err := st.Close(); err != nil { t.Errorf("Unable to close empty store: %v", err) return } }) }