preprocessor.go 798 B

1234567891011121314151617181920212223242526272829303132
  1. package preprocessor
  2. import (
  3. "errors"
  4. cbcscheme "git.buran.team/main/cbc/scheme"
  5. )
  6. const PREPROCESSOR_KIND_GO_MOD_TIDY = "go_mod_tidy"
  7. const PREPROCESSOR_KIND_GO_MOD_VENDOR = "go_mod_vendor"
  8. const PREPROCESSOR_KIND_GO_FMT = "go_fmt"
  9. var ErrKindUnknown = errors.New("kind unknown")
  10. type Preprocessor interface {
  11. Process(path string) ([]byte, []byte, error)
  12. }
  13. func NewPreprocessor(preprocessorScheme cbcscheme.TaskPreprocessor) (Preprocessor, error) {
  14. switch preprocessorScheme.Kind {
  15. case PREPROCESSOR_KIND_GO_MOD_TIDY:
  16. return NewGoModTidyPreprocessor(preprocessorScheme)
  17. case PREPROCESSOR_KIND_GO_MOD_VENDOR:
  18. return NewGoModVendorPreprocessor(preprocessorScheme)
  19. case PREPROCESSOR_KIND_GO_FMT:
  20. return NewGoFmtPreprocessor(preprocessorScheme)
  21. }
  22. return nil, ErrKindUnknown
  23. }