@@ -46,6 +46,18 @@ func (pl *protobufLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
4646 cfg := protoc .NewPackageConfig (c )
4747 c .Exts [pl .name ] = cfg
4848
49+ for _ , starlarkPlugin := range pl .starlarkPlugins {
50+ if err := protoc .RegisterStarlarkPlugin (c , starlarkPlugin ); err != nil {
51+ return err
52+ }
53+ }
54+
55+ for _ , starlarkRule := range pl .starlarkRules {
56+ if err := protoc .RegisterStarlarkRule (c , starlarkRule ); err != nil {
57+ return err
58+ }
59+ }
60+
4961 if pl .configFiles != "" {
5062 for _ , filename := range strings .Split (pl .configFiles , "," ) {
5163 if err := protoc .LoadYConfigFile (c , cfg , filename ); err != nil {
@@ -62,18 +74,6 @@ func (pl *protobufLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
6274 }
6375 }
6476
65- for _ , starlarkPlugin := range pl .starlarkPlugins {
66- if err := registerStarlarkPlugin (c , starlarkPlugin ); err != nil {
67- return err
68- }
69- }
70-
71- for _ , starlarkRule := range pl .starlarkRules {
72- if err := registerStarlarkRule (c , starlarkRule ); err != nil {
73- return err
74- }
75- }
76-
7777 return nil
7878}
7979
@@ -128,52 +128,6 @@ func (pl *protobufLang) getOrCreatePackageConfig(config *config.Config) *protoc.
128128 return cfg
129129}
130130
131- func registerStarlarkPlugin (c * config.Config , starlarkPlugin string ) error {
132- parts := strings .Split (starlarkPlugin , "%" )
133- if len (parts ) != 2 {
134- return fmt .Errorf ("invalid starlark plugin name %q" , starlarkPlugin )
135- }
136- fileName := parts [0 ]
137- ruleName := parts [1 ]
138- var configureError error
139- impl , err := protoc .LoadStarlarkPluginFromFile (c .WorkDir , fileName , ruleName , func (msg string ) {
140- }, func (err error ) {
141- configureError = err
142- })
143- if err != nil {
144- return err
145- }
146- if configureError != nil {
147- return configureError
148- }
149- configureError = err
150- protoc .Plugins ().RegisterPlugin (starlarkPlugin , impl )
151- return nil
152- }
153-
154- func registerStarlarkRule (c * config.Config , starlarkRule string ) error {
155- parts := strings .Split (starlarkRule , "%" )
156- if len (parts ) != 2 {
157- return fmt .Errorf ("invalid starlark rule name %q" , starlarkRule )
158- }
159- fileName := parts [0 ]
160- ruleName := parts [1 ]
161- var configureError error
162- impl , err := protoc .LoadStarlarkLanguageRuleFromFile (c .WorkDir , fileName , ruleName , func (msg string ) {
163- }, func (err error ) {
164- configureError = err
165- })
166- if err != nil {
167- return err
168- }
169- if configureError != nil {
170- return configureError
171- }
172- configureError = err
173- protoc .Rules ().MustRegisterRule (starlarkRule , impl )
174- return nil
175- }
176-
177131func registerWellKnownProtos (resolver protoc.ImportResolver ) {
178132 for k , v := range map [string ]label.Label {
179133 "google/protobuf/any.proto" : label .New ("com_google_protobuf" , "" , "any_proto" ),
0 commit comments