package preprocessor import ( "errors" cbcscheme "git.buran.team/main/cbc/scheme" ) const PREPROCESSOR_KIND_GO_MOD_TIDY = "go_mod_tidy" const PREPROCESSOR_KIND_GO_MOD_VENDOR = "go_mod_vendor" const PREPROCESSOR_KIND_GO_FMT = "go_fmt" var ErrKindUnknown = errors.New("kind unknown") type Preprocessor interface { Process(path string) ([]byte, []byte, error) } func NewPreprocessor(preprocessorScheme cbcscheme.TaskPreprocessor) (Preprocessor, error) { switch preprocessorScheme.Kind { case PREPROCESSOR_KIND_GO_MOD_TIDY: return NewGoModTidyPreprocessor(preprocessorScheme) case PREPROCESSOR_KIND_GO_MOD_VENDOR: return NewGoModVendorPreprocessor(preprocessorScheme) case PREPROCESSOR_KIND_GO_FMT: return NewGoFmtPreprocessor(preprocessorScheme) } return nil, ErrKindUnknown }