diff --git a/README.md b/README.md index eee5dd8..e5d775a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ![version](https://img.shields.io/github/v/release/CodeReaper/lane) ![tests](https://github.com/CodeReaper/lane/actions/workflows/tests.yaml/badge.svg) +[![Go Report Card](https://goreportcard.com/badge/github.com/codereaper/lane)](https://goreportcard.com/report/github.com/codereaper/lane) ![license](https://img.shields.io/github/license/CodeReaper/lane.svg) # lane diff --git a/internal/translations/flags.go b/internal/translations/flags.go index e7cc01f..611ac7b 100644 --- a/internal/translations/flags.go +++ b/internal/translations/flags.go @@ -18,29 +18,50 @@ type Flags struct { } func (f *Flags) validate() error { + if err := f.checkRequiredFields(); err != nil { + return err + } + + isIOS := strings.ToLower(f.Kind) == "ios" + + if err := f.checkRequiredFiles(isIOS); err != nil { + return err + } + + if isIOS || f.FillIn { + if f.DefaultValueIndex <= 0 { + return fmt.Errorf("main index not provided") + } + } + + return nil +} + +func (f *Flags) checkRequiredFields() error { if len(f.Input) == 0 { return fmt.Errorf("input not provided") } - if len(f.Kind) == 0 { - return fmt.Errorf("kind not provided") - } if f.KeyIndex <= 0 { return fmt.Errorf("index not provided") } + if len(f.Kind) == 0 { + return fmt.Errorf("kind not provided") + } - isIOS := false - - validKind := false + valid := false for _, v := range validKinds { - if !validKind && v == strings.ToLower(f.Kind) { - validKind = true + if v == strings.ToLower(f.Kind) { + valid = true } - isIOS = isIOS || strings.ToLower(f.Kind) == "ios" } - if !validKind { + if !valid { return fmt.Errorf("invalid kind: %s. Valid kinds are %v", f.Kind, validKinds) } + return nil +} + +func (f *Flags) checkRequiredFiles(isIOS bool) error { if _, err := os.Stat(f.Input); err != nil { return err } @@ -60,11 +81,5 @@ func (f *Flags) validate() error { } } - if isIOS || f.FillIn { - if f.DefaultValueIndex <= 0 { - return fmt.Errorf("main index not provided") - } - } - return nil }