From 5a2e2eb67957ee991ffdf53d93853192ce86f3a4 Mon Sep 17 00:00:00 2001 From: Samuel Dacanay Date: Wed, 9 Jun 2021 09:36:52 -0700 Subject: [PATCH] Export the presenter interface so it may be used by external projects Signed-off-by: Samuel Dacanay --- cmd/packages.go | 3 ++- syft/event/parsers/parsers.go | 4 ++-- {internal => syft}/presenter/packages/presenter.go | 11 ++++++----- .../presenter/packages/presenter_config.go | 0 .../presenter/packages/presenter_option.go | 0 {internal => syft}/presenter/presenter.go | 0 .../package_ownership_relationship_test.go | 7 ++++--- 7 files changed, 14 insertions(+), 11 deletions(-) rename {internal => syft}/presenter/packages/presenter.go (56%) rename {internal => syft}/presenter/packages/presenter_config.go (100%) rename {internal => syft}/presenter/packages/presenter_option.go (100%) rename {internal => syft}/presenter/presenter.go (100%) diff --git a/cmd/packages.go b/cmd/packages.go index 4653cbd98..b4882db0d 100644 --- a/cmd/packages.go +++ b/cmd/packages.go @@ -6,13 +6,14 @@ import ( "io/ioutil" "os" + "github.com/anchore/syft/syft/presenter/packages" + "github.com/spf13/viper" "github.com/anchore/syft/internal" "github.com/anchore/syft/internal/anchore" "github.com/anchore/syft/internal/bus" "github.com/anchore/syft/internal/log" - "github.com/anchore/syft/internal/presenter/packages" "github.com/anchore/syft/internal/ui" "github.com/anchore/syft/syft" "github.com/anchore/syft/syft/distro" diff --git a/syft/event/parsers/parsers.go b/syft/event/parsers/parsers.go index 99a3d1510..a9fdc9f1b 100644 --- a/syft/event/parsers/parsers.go +++ b/syft/event/parsers/parsers.go @@ -6,9 +6,9 @@ package parsers import ( "fmt" - "github.com/anchore/syft/syft/file" + "github.com/anchore/syft/syft/presenter" - "github.com/anchore/syft/internal/presenter" + "github.com/anchore/syft/syft/file" "github.com/wagoodman/go-progress" diff --git a/internal/presenter/packages/presenter.go b/syft/presenter/packages/presenter.go similarity index 56% rename from internal/presenter/packages/presenter.go rename to syft/presenter/packages/presenter.go index c73763b5c..ce9bb2dbe 100644 --- a/internal/presenter/packages/presenter.go +++ b/syft/presenter/packages/presenter.go @@ -5,20 +5,21 @@ a specific Presenter implementation given user configuration. package packages import ( - "github.com/anchore/syft/internal/presenter" + "github.com/anchore/syft/internal/presenter/packages" + "github.com/anchore/syft/syft/presenter" ) // Presenter returns a presenter for images or directories func Presenter(option PresenterOption, config PresenterConfig) presenter.Presenter { switch option { case JSONPresenterOption: - return NewJSONPresenter(config.Catalog, config.SourceMetadata, config.Distro, config.Scope) + return packages.NewJSONPresenter(config.Catalog, config.SourceMetadata, config.Distro, config.Scope) case TextPresenterOption: - return NewTextPresenter(config.Catalog, config.SourceMetadata) + return packages.NewTextPresenter(config.Catalog, config.SourceMetadata) case TablePresenterOption: - return NewTablePresenter(config.Catalog) + return packages.NewTablePresenter(config.Catalog) case CycloneDxPresenterOption: - return NewCycloneDxPresenter(config.Catalog, config.SourceMetadata) + return packages.NewCycloneDxPresenter(config.Catalog, config.SourceMetadata) default: return nil } diff --git a/internal/presenter/packages/presenter_config.go b/syft/presenter/packages/presenter_config.go similarity index 100% rename from internal/presenter/packages/presenter_config.go rename to syft/presenter/packages/presenter_config.go diff --git a/internal/presenter/packages/presenter_option.go b/syft/presenter/packages/presenter_option.go similarity index 100% rename from internal/presenter/packages/presenter_option.go rename to syft/presenter/packages/presenter_option.go diff --git a/internal/presenter/presenter.go b/syft/presenter/presenter.go similarity index 100% rename from internal/presenter/presenter.go rename to syft/presenter/presenter.go diff --git a/test/integration/package_ownership_relationship_test.go b/test/integration/package_ownership_relationship_test.go index dee87a6d2..67dfb3499 100644 --- a/test/integration/package_ownership_relationship_test.go +++ b/test/integration/package_ownership_relationship_test.go @@ -3,9 +3,10 @@ package integration import ( "bytes" "encoding/json" + exportedPackages "github.com/anchore/syft/syft/presenter/packages" "testing" - "github.com/anchore/syft/internal/presenter/packages" + internalPackages "github.com/anchore/syft/internal/presenter/packages" ) func TestPackageOwnershipRelationships(t *testing.T) { @@ -23,7 +24,7 @@ func TestPackageOwnershipRelationships(t *testing.T) { t.Run(test.fixture, func(t *testing.T) { catalog, d, src := catalogFixtureImage(t, test.fixture) - p := packages.Presenter(packages.JSONPresenterOption, packages.PresenterConfig{ + p := exportedPackages.Presenter(exportedPackages.JSONPresenterOption, exportedPackages.PresenterConfig{ SourceMetadata: src.Metadata, Catalog: catalog, Distro: d, @@ -38,7 +39,7 @@ func TestPackageOwnershipRelationships(t *testing.T) { t.Fatalf("unable to present: %+v", err) } - var doc packages.JSONDocument + var doc internalPackages.JSONDocument decoder := json.NewDecoder(output) if err := decoder.Decode(&doc); err != nil { t.Fatalf("unable to decode json doc: %+v", err)