Documentation ¶
Index ¶
- Constants
- Variables
- func BindAsFileDescriptorSet(flagSet *pflag.FlagSet, addr *bool, flagName string)
- func BindDisableSymlinks(flagSet *pflag.FlagSet, addr *bool, flagName string)
- func BindExcludeImports(flagSet *pflag.FlagSet, addr *bool, flagName string)
- func BindExcludePaths(flagSet *pflag.FlagSet, excludePathsAddr *[]string, ...)
- func BindExcludeSourceInfo(flagSet *pflag.FlagSet, addr *bool, flagName string)
- func BindInputHashtag(flagSet *pflag.FlagSet, addr *string)
- func BindPaths(flagSet *pflag.FlagSet, pathsAddr *[]string, pathsFlagName string)
- func BindVisibility(flagSet *pflag.FlagSet, addr *string, flagName string)
- func BucketAndConfigForSource(ctx context.Context, logger *zap.Logger, container app.EnvStdinContainer, ...) (storage.ReadBucketCloser, *bufconfig.Config, error)
- func GetInputLong(inputArgDescription string) string
- func GetInputValue(container app.ArgContainer, inputHashtag string, defaultValue string) (string, error)
- func GetSourceDirLong(inputArgDescription string) string
- func GetSourceLong(inputArgDescription string) string
- func GetSourceOrModuleLong(inputArgDescription string) string
- func IsAlphaWASMEnabled(container app.EnvContainer) (bool, error)
- func IsBetaTamperProofingEnabled(container app.EnvContainer) (bool, error)
- func NewConfig(container appflag.Container) (*bufapp.Config, error)
- func NewConnectClientConfig(container appflag.Container) (*connectclient.Config, error)
- func NewConnectClientConfigWithToken(container appflag.Container, token string) (*connectclient.Config, error)
- func NewErrorInterceptor() appflag.Interceptor
- func NewImageForSource(ctx context.Context, container appflag.Container, source string, ...) (bufimage.Image, error)
- func NewInternalError(err error) error
- func NewModuleReaderAndCreateCacheDirs(container appflag.Container, clientConfig *connectclient.Config) (bufmodule.ModuleReader, error)
- func NewModuleReaderAndCreateCacheDirsWithExternalPaths(container appflag.Container, clientConfig *connectclient.Config) (bufmodule.ModuleReader, error)
- func NewModuleRefError(moduleRef string) error
- func NewModuleReferenceNotFoundError(reference bufmoduleref.ModuleReference) error
- func NewOrganizationNameAlreadyExistsError(name string) error
- func NewOrganizationNotFoundError(name string) error
- func NewPluginNotFoundError(owner string, name string) error
- func NewRepositoryNameAlreadyExistsError(name string) error
- func NewRepositoryNotFoundError(name string) error
- func NewStorageosProvider(disableSymlinks bool) storageos.Provider
- func NewTagOrDraftNameAlreadyExistsError(name string) error
- func NewTemplateNotFoundError(owner string, name string) error
- func NewTokenNotFoundError(tokenID string) error
- func NewTooManyEmptyAnswersError(attempts int) error
- func NewUnimplementedRemoteError(err error, remote string, moduleIdentity string) error
- func NewWireFileLister(container appflag.Container, storageosProvider storageos.Provider, ...) (bufwire.FileLister, error)
- func NewWireImageConfigReader(container appflag.Container, storageosProvider storageos.Provider, ...) (bufwire.ImageConfigReader, error)
- func NewWireImageReader(logger *zap.Logger, storageosProvider storageos.Provider, ...) bufwire.ImageReader
- func NewWireImageWriter(logger *zap.Logger) bufwire.ImageWriter
- func NewWireModuleConfigReader(container appflag.Container, storageosProvider storageos.Provider, ...) (bufwire.ModuleConfigReader, error)
- func NewWireModuleConfigReaderForModuleReader(container appflag.Container, storageosProvider storageos.Provider, ...) (bufwire.ModuleConfigReader, error)
- func NewWireProtoEncodingReader(logger *zap.Logger) bufwire.ProtoEncodingReader
- func NewWireProtoEncodingWriter(logger *zap.Logger) bufwire.ProtoEncodingWriter
- func PromptUser(container app.Container, prompt string) (string, error)
- func PromptUserForDelete(container app.Container, entityType string, expectedAnswer string) error
- func PromptUserForPassword(container app.Container, prompt string) (string, error)
- func ValidateErrorFormatFlag(errorFormatString string, errorFormatFlagName string) error
- func ValidateErrorFormatFlagLint(errorFormatString string, errorFormatFlagName string) error
- func VisibilityFlagToVisibility(visibility string) (registryv1alpha1.Visibility, error)
- func VisibilityFlagToVisibilityAllowUnspecified(visibility string) (registryv1alpha1.Visibility, error)
- func WarnAlphaCommand(ctx context.Context, container appflag.Container)
- func WarnBetaCommand(ctx context.Context, container appflag.Container)
- func WellKnownTypeImage(ctx context.Context, logger *zap.Logger, wellKnownType string) (bufimage.Image, error)
- type GlobalFlags
Constants ¶
const ( // Version is the CLI version of buf. Version = "1.16.0" // AlphaEnableWASMEnvKey is an env var to enable WASM local plugin execution AlphaEnableWASMEnvKey = "BUF_ALPHA_ENABLE_WASM" // BetaEnableTamperProofingEnvKey is an env var to enable tamper proofing BetaEnableTamperProofingEnvKey = "BUF_BETA_ENABLE_TAMPER_PROOFING" // WASMCompilationCacheDir compiled WASM plugin cache directory WASMCompilationCacheDir = "wasmplugin-bin" )
const ( // ExitCodeFileAnnotation is the exit code used when we print file annotations. // // We use a different exit code to be able to distinguish user-parsable errors from // system errors. ExitCodeFileAnnotation = 100 )
Variables ¶
var ( // AllCacheModuleRelDirPaths are all directory paths for all time concerning the module cache. // // These are normalized. // These are relative to container.CacheDirPath(). // // This variable is used for clearing the cache. AllCacheModuleRelDirPaths = []string{ v1beta1CacheModuleDataRelDirPath, v1beta1CacheModuleLockRelDirPath, v1CacheModuleDataRelDirPath, v1CacheModuleLockRelDirPath, v1CacheModuleSumRelDirPath, v2CacheModuleRelDirPath, } // ErrNotATTY is returned when an input io.Reader is not a TTY where it is expected. ErrNotATTY = errors.New("reader was not a TTY as expected") )
var ( // ErrNoModuleName is used when the user does not specify a module name in their configuration file. ErrNoModuleName = errors.New(`please specify a module name in your configuration file with the "name" key`) // ErrNoConfigFile is used when the user tries to execute a command without a configuration file. ErrNoConfigFile = errors.New(`please define a configuration file in the current directory; you can create one by running "buf mod init"`) // ErrFileAnnotation is used when we print file annotations and want to return an error. // // The app package works on the concept that an error results in a non-zero exit // code, and we already print the messages with PrintFileAnnotations, so we do // not want to print any additional error message. // // We also exit with 100 to be able to distinguish user-parsable errors from // system errors. ErrFileAnnotation = app.NewError(ExitCodeFileAnnotation, "") )
Functions ¶
func BindAsFileDescriptorSet ¶
BindAsFileDescriptorSet binds the exclude-imports flag.
func BindDisableSymlinks ¶ added in v1.0.0
BindDisableSymlinks binds the disable-symlinks flag.
func BindExcludeImports ¶
BindExcludeImports binds the exclude-imports flag.
func BindExcludePaths ¶ added in v1.0.0
func BindExcludePaths( flagSet *pflag.FlagSet, excludePathsAddr *[]string, excludePathsFlagName string, )
BindExcludePaths binds the exclude-path flag.
func BindExcludeSourceInfo ¶
BindExcludeSourceInfo binds the exclude-source-info flag.
func BindInputHashtag ¶
BindInputHashtag binds the input hashtag flag.
This needs to be added to any command that has the input as the first argument. This deals with the situation "buf build -#format=json" which results in a parse error from pflag.
func BindVisibility ¶ added in v1.4.0
BindVisibility binds the visibility flag.
func BucketAndConfigForSource ¶ added in v1.10.0
func BucketAndConfigForSource( ctx context.Context, logger *zap.Logger, container app.EnvStdinContainer, storageosProvider storageos.Provider, runner command.Runner, source string, ) (storage.ReadBucketCloser, *bufconfig.Config, error)
BucketAndConfigForSource returns a bucket and config. The bucket contains just the files that constitute a module. It also checks if config exists and defines a module identity, returning ErrNoConfigFile and ErrNoModuleName respectfully.
Workspaces are disabled when fetching the source.
func GetInputLong ¶
GetInputLong gets the long command description for an input-based command.
func GetInputValue ¶
func GetInputValue( container app.ArgContainer, inputHashtag string, defaultValue string, ) (string, error)
GetInputValue gets the first arg.
Also parses the special input hashtag flag that deals with the situation "buf build -#format=json". The existence of 0 or 1 args should be handled by the Args field on Command.
func GetSourceDirLong ¶ added in v1.7.0
GetSourceDirLong gets the long command description for a directory-based command.
func GetSourceLong ¶ added in v1.0.0
GetSourceLong gets the long command description for an input-based command.
func GetSourceOrModuleLong ¶
GetSourceOrModuleLong gets the long command description for an input-based command.
func IsAlphaWASMEnabled ¶ added in v1.16.0
func IsAlphaWASMEnabled(container app.EnvContainer) (bool, error)
IsAlphaWASMEnabled returns an BUF_ALPHA_ENABLE_WASM is set to true.
func IsBetaTamperProofingEnabled ¶ added in v1.13.0
func IsBetaTamperProofingEnabled(container app.EnvContainer) (bool, error)
IsBetaTamperProofingEnabled returns if BUF_BETA_ENABLE_TAMPER_PROOFING is set to true.
func NewConnectClientConfig ¶ added in v1.10.0
func NewConnectClientConfig(container appflag.Container) (*connectclient.Config, error)
NewConnectClientConfig creates a new connect.ClientConfig which uses a token reader to look up the token in the container or in netrc based on the address of each individual client. It is then set in the header of all outgoing requests from clients created using this config.
func NewConnectClientConfigWithToken ¶ added in v1.10.0
func NewConnectClientConfigWithToken(container appflag.Container, token string) (*connectclient.Config, error)
NewConnectClientConfigWithToken creates a new connect.ClientConfig with a given token. The provided token is set in the header of all outgoing requests from this provider
func NewErrorInterceptor ¶
func NewErrorInterceptor() appflag.Interceptor
NewErrorInterceptor returns a CLI interceptor that wraps Buf CLI errors.
func NewImageForSource ¶ added in v1.0.0
func NewImageForSource( ctx context.Context, container appflag.Container, source string, errorFormat string, disableSymlinks bool, configOverride string, externalDirOrFilePaths []string, externalExcludeDirOrFilePaths []string, externalDirOrFilePathsAllowNotExist bool, excludeSourceCodeInfo bool, ) (bufimage.Image, error)
NewImageForSource resolves a single bufimage.Image from the user-provided source with the build options.
func NewInternalError ¶
NewInternalError represents an internal error encountered by the buf CLI. These errors should not happen and therefore warrant a bug report.
func NewModuleReaderAndCreateCacheDirs ¶
func NewModuleReaderAndCreateCacheDirs( container appflag.Container, clientConfig *connectclient.Config, ) (bufmodule.ModuleReader, error)
NewModuleReaderAndCreateCacheDirs returns a new ModuleReader while creating the required cache directories.
func NewModuleReaderAndCreateCacheDirsWithExternalPaths ¶ added in v1.8.0
func NewModuleReaderAndCreateCacheDirsWithExternalPaths( container appflag.Container, clientConfig *connectclient.Config, ) (bufmodule.ModuleReader, error)
NewModuleReaderAndCreateCacheDirsWithExternalPaths returns a new ModuleReader while creating the required cache directories, and configures the cache to preserve external paths.
WARNING - this should only be used by systems like the LSP - leaking external paths from the module cache is otherwise dangerous and requires manager approval.
func NewModuleRefError ¶
NewModuleRefError is used when the client fails to parse a module ref.
func NewModuleReferenceNotFoundError ¶
func NewModuleReferenceNotFoundError(reference bufmoduleref.ModuleReference) error
NewModuleReferenceNotFoundError informs the user that a module reference does not exist.
func NewOrganizationNameAlreadyExistsError ¶
NewOrganizationNameAlreadyExistsError informs the user that an organization with that name already exists.
func NewOrganizationNotFoundError ¶
NewOrganizationNotFoundError informs the user that an organization with that name does not exist.
func NewPluginNotFoundError ¶
NewPluginNotFoundError informs the user that a plugin with that owner and name does not exist.
func NewRepositoryNameAlreadyExistsError ¶
NewRepositoryNameAlreadyExistsError informs the user that a repository with that name already exists.
func NewRepositoryNotFoundError ¶
NewRepositoryNotFoundError informs the user that a repository with that name does not exist.
func NewStorageosProvider ¶ added in v1.0.0
NewStorageosProvider returns a new storageos.Provider based on the value of the disable-symlinks flag.
func NewTagOrDraftNameAlreadyExistsError ¶ added in v1.7.0
NewTagOrDraftNameAlreadyExistsError informs the user that a tag or draft with that name already exists.
func NewTemplateNotFoundError ¶
NewTemplateNotFoundError informs the user that a template with that owner and name does not exist.
func NewTokenNotFoundError ¶
NewTokenNotFoundError informs the user that a token with that identifier does not exist.
func NewTooManyEmptyAnswersError ¶
NewTooManyEmptyAnswersError is used when the user does not answer a prompt in the given number of attempts.
func NewWireFileLister ¶
func NewWireFileLister( container appflag.Container, storageosProvider storageos.Provider, runner command.Runner, clientConfig *connectclient.Config, ) (bufwire.FileLister, error)
NewWireFileLister returns a new FileLister.
func NewWireImageConfigReader ¶
func NewWireImageConfigReader( container appflag.Container, storageosProvider storageos.Provider, runner command.Runner, clientConfig *connectclient.Config, ) (bufwire.ImageConfigReader, error)
NewWireImageConfigReader returns a new ImageConfigReader.
func NewWireImageReader ¶
func NewWireImageReader( logger *zap.Logger, storageosProvider storageos.Provider, runner command.Runner, ) bufwire.ImageReader
NewWireImageReader returns a new ImageReader.
func NewWireImageWriter ¶
func NewWireImageWriter( logger *zap.Logger, ) bufwire.ImageWriter
NewWireImageWriter returns a new ImageWriter.
func NewWireModuleConfigReader ¶
func NewWireModuleConfigReader( container appflag.Container, storageosProvider storageos.Provider, runner command.Runner, clientConfig *connectclient.Config, ) (bufwire.ModuleConfigReader, error)
NewWireModuleConfigReader returns a new ModuleConfigReader.
func NewWireModuleConfigReaderForModuleReader ¶
func NewWireModuleConfigReaderForModuleReader( container appflag.Container, storageosProvider storageos.Provider, runner command.Runner, clientConfig *connectclient.Config, moduleReader bufmodule.ModuleReader, ) (bufwire.ModuleConfigReader, error)
NewWireModuleConfigReaderForModuleReader returns a new ModuleConfigReader using the given ModuleReader.
func NewWireProtoEncodingReader ¶ added in v1.1.0
func NewWireProtoEncodingReader( logger *zap.Logger, ) bufwire.ProtoEncodingReader
NewWireProtoEncodingReader returns a new ProtoEncodingReader.
func NewWireProtoEncodingWriter ¶ added in v1.0.0
func NewWireProtoEncodingWriter( logger *zap.Logger, ) bufwire.ProtoEncodingWriter
NewWireProtoEncodingWriter returns a new ProtoEncodingWriter.
func PromptUser ¶
PromptUser reads a line from Stdin, prompting the user with the prompt first. The prompt is repeatedly shown until the user provides a non-empty response. ErrNotATTY is returned if the input containers Stdin is not a terminal.
func PromptUserForDelete ¶
PromptUserForDelete is used to receieve user confirmation that a specific entity should be deleted. If the user's answer does not match the expected answer, an error is returned. ErrNotATTY is returned if the input containers Stdin is not a terminal.
func PromptUserForPassword ¶
PromptUserForPassword reads a line from Stdin, prompting the user with the prompt first. The prompt is repeatedly shown until the user provides a non-empty response. ErrNotATTY is returned if the input containers Stdin is not a terminal.
func ValidateErrorFormatFlag ¶
ValidateErrorFormatFlag validates the error format flag for all commands but lint.
func ValidateErrorFormatFlagLint ¶
ValidateErrorFormatFlagLint validates the error format flag for lint.
func VisibilityFlagToVisibility ¶ added in v1.4.0
func VisibilityFlagToVisibility(visibility string) (registryv1alpha1.Visibility, error)
VisibilityFlagToVisibility parses the given string as a registryv1alpha1.Visibility.
func VisibilityFlagToVisibilityAllowUnspecified ¶ added in v1.4.0
func VisibilityFlagToVisibilityAllowUnspecified(visibility string) (registryv1alpha1.Visibility, error)
VisibilityFlagToVisibilityAllowUnspecified parses the given string as a registryv1alpha1.Visibility, where an empty string will be parsed as unspecified
func WarnAlphaCommand ¶ added in v1.0.0
WarnAlphaCommand prints a warning for a alpha command unless the alphaSuppressWarningsEnvKey environment variable is set.
func WarnBetaCommand ¶ added in v1.0.0
WarnBetaCommand prints a warning for a beta command unless the betaSuppressWarningsEnvKey environment variable is set.
Types ¶
type GlobalFlags ¶
type GlobalFlags struct{}
GlobalFlags contains global flags for buf commands.
func NewGlobalFlags ¶
func NewGlobalFlags() *GlobalFlags
NewGlobalFlags creates a new GlobalFlags with default values..
func (*GlobalFlags) BindRoot ¶
func (*GlobalFlags) BindRoot(*pflag.FlagSet)
BindRoot binds the global flags to the root command flag set.