From 42caed5179f5aca04148dcb3b15c0ec30e641630 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Wed, 2 Nov 2022 19:11:57 +0900 Subject: [PATCH] refactor(generate): split the package for output --- pkg/controller/generate/generate.go | 10 ++++------ pkg/controller/generate/{ => output}/insert.go | 4 ++-- pkg/controller/generate/{ => output}/output.go | 15 +++++++++++---- 3 files changed, 17 insertions(+), 12 deletions(-) rename pkg/controller/generate/{ => output}/insert.go (95%) rename pkg/controller/generate/{ => output}/output.go (78%) diff --git a/pkg/controller/generate/generate.go b/pkg/controller/generate/generate.go index 1190d2a2a..a17aeaf09 100644 --- a/pkg/controller/generate/generate.go +++ b/pkg/controller/generate/generate.go @@ -13,6 +13,7 @@ import ( "github.com/aquaproj/aqua/pkg/config" "github.com/aquaproj/aqua/pkg/config/aqua" "github.com/aquaproj/aqua/pkg/config/registry" + "github.com/aquaproj/aqua/pkg/controller/generate/output" "github.com/aquaproj/aqua/pkg/domain" "github.com/aquaproj/aqua/pkg/expr" "github.com/aquaproj/aqua/pkg/github" @@ -46,7 +47,7 @@ type ConfigFinder interface { } type Outputter interface { - Output(param *OutputParam) error + Output(param *output.Param) error } func New(configFinder ConfigFinder, configReader domain.ConfigReader, registInstaller domain.RegistryInstaller, gh RepositoriesService, fs afero.Fs, fuzzyFinder FuzzyFinder, versionSelector VersionSelector) *Controller { @@ -60,10 +61,7 @@ func New(configFinder ConfigFinder, configReader domain.ConfigReader, registInst fs: fs, fuzzyFinder: fuzzyFinder, versionSelector: versionSelector, - outputter: &outputter{ - fs: fs, - stdout: os.Stdout, - }, + outputter: output.New(os.Stdout, fs), } } @@ -104,7 +102,7 @@ func (ctrl *Controller) Generate(ctx context.Context, logE *logrus.Entry, param return nil } - return ctrl.outputter.Output(&OutputParam{ //nolint:wrapcheck + return ctrl.outputter.Output(&output.Param{ //nolint:wrapcheck Insert: param.Insert, Dest: param.Dest, List: list, diff --git a/pkg/controller/generate/insert.go b/pkg/controller/generate/output/insert.go similarity index 95% rename from pkg/controller/generate/insert.go rename to pkg/controller/generate/output/insert.go index 5bea5708c..4486b4ba6 100644 --- a/pkg/controller/generate/insert.go +++ b/pkg/controller/generate/output/insert.go @@ -1,4 +1,4 @@ -package generate +package output import ( "errors" @@ -11,7 +11,7 @@ import ( "github.com/spf13/afero" ) -func (out *outputter) generateInsert(cfgFilePath string, pkgs []*aqua.Package) error { +func (out *Outputter) generateInsert(cfgFilePath string, pkgs []*aqua.Package) error { b, err := afero.ReadFile(out.fs, cfgFilePath) if err != nil { return fmt.Errorf("read a configuration file: %w", err) diff --git a/pkg/controller/generate/output.go b/pkg/controller/generate/output/output.go similarity index 78% rename from pkg/controller/generate/output.go rename to pkg/controller/generate/output/output.go index 3fe905dff..bc9a1043e 100644 --- a/pkg/controller/generate/output.go +++ b/pkg/controller/generate/output/output.go @@ -1,4 +1,4 @@ -package generate +package output import ( "fmt" @@ -9,19 +9,26 @@ import ( "gopkg.in/yaml.v2" ) -type outputter struct { +type Outputter struct { stdout io.Writer fs afero.Fs } -type OutputParam struct { +func New(stdout io.Writer, fs afero.Fs) *Outputter { + return &Outputter{ + stdout: stdout, + fs: fs, + } +} + +type Param struct { Insert bool Dest string List []*aqua.Package ConfigFilePath string } -func (out *outputter) Output(param *OutputParam) error { +func (out *Outputter) Output(param *Param) error { if !param.Insert && param.Dest == "" { if err := yaml.NewEncoder(out.stdout).Encode(param.List); err != nil { return fmt.Errorf("output generated package configuration: %w", err)