From d490a8570648f4d471db227f70d0408c7e84813d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 20 Dec 2014 16:39:37 +0100 Subject: [PATCH] Make sure ipfs add output is sorted by name License: MIT Signed-off-by: Christian Couder --- core/commands/add.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/commands/add.go b/core/commands/add.go index 176824a9f..3ab27ad8f 100644 --- a/core/commands/add.go +++ b/core/commands/add.go @@ -6,6 +6,7 @@ import ( "fmt" "io" "path" + "sort" cmds "github.com/jbenet/go-ipfs/commands" core "github.com/jbenet/go-ipfs/core" @@ -82,6 +83,8 @@ remains to be implemented. return nil, u.ErrCast() } + sort.Stable(val) + var buf bytes.Buffer for i, obj := range val.Objects { if val.Quiet { @@ -197,3 +200,16 @@ func addDagnode(output *AddOutput, name string, dn *dag.Node) error { output.Names = append(output.Names, name) return nil } + +// Sort interface implementation to sort add output by name + +func (a AddOutput) Len() int { + return len(a.Names) +} +func (a AddOutput) Swap(i, j int) { + a.Names[i], a.Names[j] = a.Names[j], a.Names[i] + a.Objects[i], a.Objects[j] = a.Objects[j], a.Objects[i] +} +func (a AddOutput) Less(i, j int) bool { + return a.Names[i] < a.Names[j] +}