Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompileResult ¶
type CompileResult struct { // The failures from all calls. Failures []*text.Failure // Will not be set if there are any failures. FileDescriptorSets []*descriptor.FileDescriptorSet }
CompileResult is the result of a compile
type Compiler ¶
type Compiler interface { // Compile the protobuf files with protoc. // // If there are compile failures, they will be returned in the slice // and there will be no error. The caller can determine if this is // an error case. If there is any other type of error, or some output // from protoc cannot be interpreted, an error will be returned. // // FileDescriptorSet will only be set if the CompilerWithFileDescriptorSet // option is used. Compile(...*file.ProtoSet) (*CompileResult, error) // Return the protoc commands that would be run on Compile. // // This will ignore the CompilerWithFileDescriptorSet option. ProtocCommands(...*file.ProtoSet) ([]string, error) }
Compiler compiles protobuf files.
func NewCompiler ¶
func NewCompiler(options ...CompilerOption) Compiler
NewCompiler returns a new Compiler.
type CompilerOption ¶
type CompilerOption func(*compiler)
CompilerOption is an option for a new Compiler.
func CompilerWithCachePath ¶
func CompilerWithCachePath(cachePath string) CompilerOption
CompilerWithCachePath returns a CompilerOption that uses the given cachePath.
The default is ${XDG_CACHE_HOME}/prototool/$(uname -s)/$(uname -m).
func CompilerWithFileDescriptorSet ¶
func CompilerWithFileDescriptorSet() CompilerOption
CompilerWithFileDescriptorSet says to also return the FileDescriptorSet.
func CompilerWithGen ¶
func CompilerWithGen() CompilerOption
CompilerWithGen says to also generate the code.
func CompilerWithLogger ¶
func CompilerWithLogger(logger *zap.Logger) CompilerOption
CompilerWithLogger returns a CompilerOption that uses the given logger.
The default is to use zap.NewNop().
func CompilerWithProtocURL ¶
func CompilerWithProtocURL(protocURL string) CompilerOption
CompilerWithProtocURL returns a CompilerOption that uses the given protoc zip file URL.
The default is https://github.com/google/protobuf/releases/download/vVERSION/protoc-VERSION-OS-ARCH.zip.
type Downloader ¶
type Downloader interface { // Download protobuf. // // If already downloaded, this has no effect. This is thread-safe. // This will download to ${XDG_CACHE_HOME}/prototool/$(uname -s)/$(uname -m) // unless overridden by a DownloaderOption. // If ${XDG_CACHE_HOME} is not set, it defaults to ${HOME}/Library/Caches on // Darwin, and ${HOME}/.cache on Linux. // If ${HOME} is not set, an error will be returned. // // Returns the path to the downloaded protobuf artifacts. // // ProtocPath and WellKnownTypesIncludePath implicitly call this. Download() (string, error) // Get the path to protoc. // // If not downloaded, this downloads and caches protobuf. This is thread-safe. ProtocPath() (string, error) // Get the path to include for the well-known types. // // Inside this directory will be the subdirectories google/protobuf. // // If not downloaded, this downloads and caches protobuf. This is thread-safe. WellKnownTypesIncludePath() (string, error) // Delete any downloaded artifacts. // // This is not thread-safe and no calls to other functions can be reliably // made simultaneously. Delete() error }
Downloader downloads and caches protobuf.
func NewDownloader ¶
func NewDownloader(config settings.Config, options ...DownloaderOption) Downloader
NewDownloader returns a new Downloader for the given config and DownloaderOptions.
type DownloaderOption ¶
type DownloaderOption func(*downloader)
DownloaderOption is an option for a new Downloader.
func DownloaderWithCachePath ¶
func DownloaderWithCachePath(cachePath string) DownloaderOption
DownloaderWithCachePath returns a DownloaderOption that uses the given cachePath.
The default is ${XDG_CACHE_HOME}/prototool/$(uname -s)/$(uname -m).
func DownloaderWithLogger ¶
func DownloaderWithLogger(logger *zap.Logger) DownloaderOption
DownloaderWithLogger returns a DownloaderOption that uses the given logger.
The default is to use zap.NewNop().
func DownloaderWithProtocURL ¶
func DownloaderWithProtocURL(protocURL string) DownloaderOption
DownloaderWithProtocURL returns a DownloaderOption that uses the given protoc zip file URL.
The default is https://github.com/google/protobuf/releases/download/vVERSION/protoc-VERSION-OS-ARCH.zip.