diff --git a/cmd/packer-sdc/internal/fix/cmd.go b/cmd/packer-sdc/internal/fix/cmd.go index 62e999299..3bbca25a6 100644 --- a/cmd/packer-sdc/internal/fix/cmd.go +++ b/cmd/packer-sdc/internal/fix/cmd.go @@ -13,7 +13,7 @@ import ( "path/filepath" "strings" - "github.com/google/go-cmp/cmp" + "github.com/pkg/diff" ) const cmdPrefix string = "fix" @@ -106,7 +106,7 @@ func processFiles(rootDir string, showDiff bool) error { var hasErrors error for _, f := range availableFixes { - matches, err := filepath.Glob(filepath.Join(rootDir, f.fileGlob)) + matches, err := f.scan(rootDir) if err != nil { return fmt.Errorf("failed to apply %s fix: %s", f.name, err) } @@ -124,12 +124,12 @@ func processFiles(rootDir string, showDiff bool) error { fixedData = bytes.Clone(srcFiles[filename]) } - fixedData, err := f.Fix(filename, fixedData) + fixedData, err := f.fix(filename, fixedData) if err != nil { hasErrors = errors.Join(hasErrors, err) continue } - if cmp.Equal(fixedData, srcFiles[filename]) { + if bytes.Equal(fixedData, srcFiles[filename]) { continue } fixedFiles[filename] = bytes.Clone(fixedData) @@ -142,9 +142,7 @@ func processFiles(rootDir string, showDiff bool) error { if showDiff { for filename, fixedData := range fixedFiles { - fmt.Printf("%s:\n", filename) - // Using cmp Diff is not the greatest look for an alternative or implement custom reporter - fmt.Println(cmp.Diff(srcFiles[filename], fixedData)) + diff.Text(filename, filename+"fixed", string(srcFiles[filename]), string(fixedData), os.Stdout) } return nil } diff --git a/go.mod b/go.mod index d42f13c9a..c5c590c63 100644 --- a/go.mod +++ b/go.mod @@ -58,6 +58,7 @@ require ( github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e github.com/pkg/errors v0.9.1 github.com/pkg/sftp v1.13.2 github.com/ryanuber/go-glob v1.0.0 diff --git a/go.sum b/go.sum index 1b95da008..1a8fe2887 100644 --- a/go.sum +++ b/go.sum @@ -374,6 +374,8 @@ github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=