Skip to content

Commit

Permalink
refactor: make DRY
Browse files Browse the repository at this point in the history
  • Loading branch information
suzuki-shunsuke committed Mar 26, 2023
1 parent 45dcb68 commit 1e245a5
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 38 deletions.
14 changes: 2 additions & 12 deletions pkg/controller/cp/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,18 +95,8 @@ func (ctrl *Controller) Copy(ctx context.Context, logE *logrus.Entry, param *con
}

func (ctrl *Controller) readPolicy(logE *logrus.Entry, param *config.Param) ([]*policy.Config, error) {
policyFile, err := ctrl.policyConfigFinder.Find("", param.PWD)
if err != nil {
return nil, fmt.Errorf("find a policy file: %w", err)
}
if policyFile != "" {
if err := ctrl.policyValidator.Validate(policyFile); err != nil {
if err := ctrl.policyValidator.Warn(logE, policyFile); err != nil {
logE.WithError(err).Warn("warn an denied policy file")
}
} else {
param.PolicyConfigFilePaths = append(param.PolicyConfigFilePaths, policyFile)
}
if err := policy.Validate(logE, ctrl.policyConfigFinder, ctrl.policyValidator, param); err != nil {
return nil, fmt.Errorf("validate a policy file: %w", err)
}
return ctrl.policyConfigReader.Read(param.PolicyConfigFilePaths, param.DisablePolicy) //nolint:wrapcheck
}
Expand Down
16 changes: 3 additions & 13 deletions pkg/controller/exec/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,24 +67,14 @@ func (ctrl *Controller) Exec(ctx context.Context, logE *logrus.Entry, param *con
if err != nil {
return err //nolint:wrapcheck
}
if findResult.Package != nil { //nolint:nestif
if findResult.Package != nil {
logE = logE.WithFields(logrus.Fields{
"package": findResult.Package.Package.Name,
"package_version": findResult.Package.Package.Version,
})

policyFile, err := ctrl.policyConfigFinder.Find("", param.PWD)
if err != nil {
return fmt.Errorf("find a policy file: %w", err)
}
if policyFile != "" {
if err := ctrl.policyValidator.Validate(policyFile); err != nil {
if err := ctrl.policyValidator.Warn(logE, policyFile); err != nil {
logE.WithError(err).Warn("warn an denied policy file")
}
} else {
param.PolicyConfigFilePaths = append(param.PolicyConfigFilePaths, policyFile)
}
if err := policy.Validate(logE, ctrl.policyConfigFinder, ctrl.policyValidator, param); err != nil {
return fmt.Errorf("validate a policy file: %w", err)
}

if err := ctrl.validate(findResult.Package, param.DisablePolicy, param.PolicyConfigFilePaths); err != nil {
Expand Down
16 changes: 3 additions & 13 deletions pkg/controller/install/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func New(param *config.Param, configFinder ConfigFinder, configReader reader.Con
}
}

func (ctrl *Controller) Install(ctx context.Context, logE *logrus.Entry, param *config.Param) error { //nolint:cyclop
func (ctrl *Controller) Install(ctx context.Context, logE *logrus.Entry, param *config.Param) error {
if param.Dest == "" { //nolint:nestif
rootBin := filepath.Join(ctrl.rootDir, "bin")
if err := util.MkdirAll(ctrl.fs, rootBin); err != nil {
Expand All @@ -72,18 +72,8 @@ func (ctrl *Controller) Install(ctx context.Context, logE *logrus.Entry, param *
}
}

policyFile, err := ctrl.policyConfigFinder.Find("", param.PWD)
if err != nil {
return fmt.Errorf("find a policy file: %w", err)
}
if policyFile != "" {
if err := ctrl.policyValidator.Validate(policyFile); err != nil {
if err := ctrl.policyValidator.Warn(logE, policyFile); err != nil {
logE.WithError(err).Warn("warn an denied policy file")
}
} else {
param.PolicyConfigFilePaths = append(param.PolicyConfigFilePaths, policyFile)
}
if err := policy.Validate(logE, ctrl.policyConfigFinder, ctrl.policyValidator, param); err != nil {
return fmt.Errorf("validate a policy file: %w", err)
}

policyCfgs, err := ctrl.policyConfigReader.Read(param.PolicyConfigFilePaths, param.DisablePolicy)
Expand Down
17 changes: 17 additions & 0 deletions pkg/policy/validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,23 @@ func NewValidator(param *config.Param, fs afero.Fs) *ValidatorImpl {
}
}

func Validate(logE *logrus.Entry, finder ConfigFinder, validator Validator, param *config.Param) error {
policyFile, err := finder.Find("", param.PWD)
if err != nil {
return fmt.Errorf("find a policy file: %w", err)
}
if policyFile != "" {
if err := validator.Validate(policyFile); err != nil {
if err := validator.Warn(logE, policyFile); err != nil {
logE.WithError(err).Warn("warn an denied policy file")
}
} else {
param.PolicyConfigFilePaths = append(param.PolicyConfigFilePaths, policyFile)
}
}
return nil
}

var (
errPolicyNotFound = errors.New("the policy file isn't found")
errPolicyUpdated = errors.New("the policy file updated")
Expand Down

0 comments on commit 1e245a5

Please sign in to comment.