Skip to content

Commit

Permalink
fix: updated cmd.diff to be compatible with updates to datasetDiffer
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Osterbind committed Feb 6, 2018
1 parent f1caad5 commit 201bdda
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 8 deletions.
6 changes: 5 additions & 1 deletion cmd/cmd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ const profileData = `
// This is a basic integration test that makes sure basic happy paths work on the CLI
func TestCommandsIntegration(t *testing.T) {
path := filepath.Join(os.TempDir(), "qri_test_commands_integration")
//clean up if previous cleanup failed
if _, err := os.Stat(path); os.IsNotExist(err) {
os.RemoveAll(path)
}
if err := os.MkdirAll(path, os.ModePerm); err != nil {
t.Errorf("error creating test path: %s", err.Error())
return
Expand Down Expand Up @@ -101,7 +105,7 @@ func TestCommandsIntegration(t *testing.T) {
{"list"},
{"save", "--data=" + movies2FilePath, "-t" + "commit_1", "me/movies"},
{"log", "me/movies"},
{"diff", "me/movies", "me/movies2"},
{"diff", "me/movies", "me/movies2", "-d", "detail"},
{"export", "--dataset", "me/movies", "-o" + path},
{"rename", "me/movies", "me/movie"},
{"validate", "me/movie"},
Expand Down
36 changes: 29 additions & 7 deletions cmd/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,22 @@ import (
"github.com/qri-io/qri/core"
"github.com/qri-io/qri/repo"
"github.com/spf13/cobra"
diff "github.com/yudai/gojsondiff"
// diff "github.com/yudai/gojsondiff"
)

var datasetDiffCmd = &cobra.Command{
Use: "diff",
Short: "diff two datasets",
Long: `
Diff diffs two datasets`,
Diff compares two datasets from your repo and prints a represntation
of the differences between them. You can specifify the datasets
either by name or by their hash`,
Example: `todo`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
for i, arg := range args {
fmt.Printf("%d: %s\n", i, arg)
}
if len(args) < 2 {
ErrExit(fmt.Errorf("please provide names for two datsets"))
}

Expand All @@ -40,21 +45,38 @@ Diff diffs two datasets`,
err = req.Get(rightRef, right)
ExitIfErr(err)

diffs := &map[string]diff.Diff{}
diffs := make(map[string]*datasetDiffer.SubDiff)

p := &core.DiffParams{
DsLeft: left.Dataset,
DsRight: right.Dataset,
DiffAll: true,
}

err = req.Diff(p, diffs)
err = req.Diff(p, &diffs)
ExitIfErr(err)

fmt.Println(datasetDiffer.MapDiffsToString(*diffs))
displayFormat := "listKeys"
displayFlag := cmd.Flag("display").Value.String()
if displayFlag != "" {
switch displayFlag {
case "reg", "regular":
displayFormat = "listKeys"
case "short", "s":
displayFormat = "simple"
case "delta":
displayFormat = "delta"
case "detail":
displayFormat = "plusMinus"
}
}
result, err := datasetDiffer.MapDiffsToString(diffs, displayFormat)
ExitIfErr(err)
fmt.Println(result)
},
}

func init() {
RootCmd.AddCommand(datasetDiffCmd)
datasetDiffCmd.Flags().StringP("display", "d", "", "set display format [reg|short|delta|detail]")
// datasetDiffCmd.Flags().BoolP("color", "c", false, "set ")
}

0 comments on commit 201bdda

Please sign in to comment.