appprotoexec

package
v0.52.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2021 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package appprotoexec provides protoc plugin handling and execution.

Note this is currently implicitly tested through buf's protoc command. If this were split out into a separate package, testing would need to be moved to this package.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ProtocProxyPluginNames are the names of the plugins that should be proxied through protoc
	// in the absence of a binary.
	ProtocProxyPluginNames = map[string]struct{}{
		"cpp":    {},
		"csharp": {},
		"java":   {},
		"js":     {},
		"objc":   {},
		"php":    {},
		"python": {},
		"ruby":   {},
		"kotlin": {},
	}

	// DefaultVersion represents the default version to use as compiler version for codegen requests.
	DefaultVersion = newVersion(
		defaultMajorVersion,
		defaultMinorVersion,
		defaultPatchVersion,
		defaultSuffixVersion,
	)
)

Functions

func NewHandler

func NewHandler(
	logger *zap.Logger,
	storageosProvider storageos.Provider,
	pluginName string,
	options ...HandlerOption,
) (appproto.Handler, error)

NewHandler returns a new Handler based on the plugin name and optional path.

protocPath and pluginPath are optional.

  • If the plugin path is set, this returns a new binary handler for that path.
  • If the plugin path is unset, this does exec.LookPath for a binary named protoc-gen-pluginName, and if one is found, a new binary handler is returned for this.
  • Else, if the name is in ProtocProxyPluginNames, this returns a new protoc proxy handler.
  • Else, this returns error.

Types

type HandlerOption added in v0.23.0

type HandlerOption func(*handlerOptions)

HandlerOption is an option for a new Handler.

func HandlerWithPluginPath added in v0.23.0

func HandlerWithPluginPath(pluginPath string) HandlerOption

HandlerWithPluginPath returns a new HandlerOption that sets the path to the plugin binary.

The default is to do exec.LookPath on "protoc-gen-" + pluginName.

func HandlerWithProtocPath added in v0.23.0

func HandlerWithProtocPath(protocPath string) HandlerOption

HandlerWithProtocPath returns a new HandlerOption that sets the path to the protoc binary.

The default is to do exec.LookPath on "protoc".

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL