cli

package
v2.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2023 License: AGPL-3.0 Imports: 158 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Caret = pretty.Sprint(cliui.DefaultStyles.Prompt, "")
)
View Source
var InterruptSignals = []os.Signal{
	os.Interrupt,
	syscall.SIGTERM,
	syscall.SIGHUP,
}

Functions

func BuildLogger

func BuildLogger(inv *clibase.Invocation, cfg *codersdk.DeploymentValues) (slog.Logger, func(), error)

func ConfigureHTTPClient

func ConfigureHTTPClient(ctx context.Context, clientCertFile, clientKeyFile string, tlsClientCAFile string) (context.Context, *http.Client, error)

func ConfigureTraceProvider

func ConfigureTraceProvider(
	ctx context.Context,
	logger slog.Logger,
	cfg *codersdk.DeploymentValues,
) (trace.TracerProvider, string, func(context.Context) error)

func ConnectToPostgres added in v2.2.0

func ConnectToPostgres(ctx context.Context, logger slog.Logger, driver string, dbURL string) (*sql.DB, error)

func ContextWithLogger

func ContextWithLogger(ctx context.Context, l slog.Logger) context.Context

func CurrentOrganization

func CurrentOrganization(inv *clibase.Invocation, client *codersdk.Client) (codersdk.Organization, error)

CurrentOrganization returns the currently active organization for the authenticated user.

func DumpHandler

func DumpHandler(ctx context.Context)

DumpHandler provides a custom SIGQUIT and SIGTRAP handler that dumps the stacktrace of all goroutines to stderr and a well-known file in the home directory. This is useful for debugging deadlock issues that may occur in production in workspaces, since the default Go runtime will only dump to stderr (which is often difficult/impossible to read in a workspace).

SIGQUITs will still cause the program to exit (similarly to the default Go runtime behavior).

A SIGQUIT handler will not be registered if GOTRACEBACK=crash.

On Windows this immediately returns.

func IsLocalURL

func IsLocalURL(ctx context.Context, u *url.URL) (bool, error)

isLocalURL returns true if the hostname of the provided URL appears to resolve to a loopback address.

func IsLocalhost

func IsLocalhost(host string) bool

IsLocalhost returns true if the host points to the local machine. Intended to be called with `u.Hostname()`.

func LoggerFromContext

func LoggerFromContext(ctx context.Context) (slog.Logger, bool)

func ParseProvisionerTags

func ParseProvisionerTags(rawTags []string) (map[string]string, error)

func PrintDeprecatedOptions

func PrintDeprecatedOptions() clibase.MiddlewareFunc

printDeprecatedOptions loops through all command options, and prints a warning for usage of deprecated options.

func PrintLogo(inv *clibase.Invocation, daemonTitle string)

nolint: revive

func ReadGitAuthProvidersFromEnv

func ReadGitAuthProvidersFromEnv(environ []string) ([]codersdk.GitAuthConfig, error)

ReadGitAuthProvidersFromEnv is provided for compatibility purposes with the viper CLI. DEPRECATED

func ServeHandler

func ServeHandler(ctx context.Context, logger slog.Logger, handler http.Handler, addr, name string) (closeFunc func())

func SlimUnsupported added in v2.1.5

func SlimUnsupported(w io.Writer, cmd string)

func WriteConfigMW

func WriteConfigMW(cfg *codersdk.DeploymentValues) clibase.MiddlewareFunc

writeConfigMW will prevent the main command from running if the write-config flag is set. Instead, it will marshal the command options to YAML and write them to stdout.

Types

type HTTPServers

type HTTPServers struct {
	HTTPUrl      *url.URL
	HTTPListener net.Listener

	// TLS
	TLSUrl      *url.URL
	TLSListener net.Listener
	TLSConfig   *tls.Config
}

func ConfigureHTTPServers

func ConfigureHTTPServers(inv *clibase.Invocation, cfg *codersdk.DeploymentValues) (_ *HTTPServers, err error)

func (*HTTPServers) Close

func (s *HTTPServers) Close()

func (*HTTPServers) Serve

func (s *HTTPServers) Serve(srv *http.Server) error

Serve acts just like http.Serve. It is a blocking call until the server is closed, and an error is returned if any underlying Serve call fails.

type ParameterResolver

type ParameterResolver struct {
	// contains filtered or unexported fields
}

func (*ParameterResolver) Resolve

func (*ParameterResolver) WithBuildOptions

func (pr *ParameterResolver) WithBuildOptions(params []codersdk.WorkspaceBuildParameter) *ParameterResolver

func (*ParameterResolver) WithLastBuildParameters

func (pr *ParameterResolver) WithLastBuildParameters(params []codersdk.WorkspaceBuildParameter) *ParameterResolver

func (*ParameterResolver) WithPromptBuildOptions

func (pr *ParameterResolver) WithPromptBuildOptions(promptBuildOptions bool) *ParameterResolver

func (*ParameterResolver) WithPromptRichParameters

func (pr *ParameterResolver) WithPromptRichParameters(promptRichParameters bool) *ParameterResolver

func (*ParameterResolver) WithRichParameters

func (pr *ParameterResolver) WithRichParameters(params []codersdk.WorkspaceBuildParameter) *ParameterResolver

func (*ParameterResolver) WithRichParametersFile

func (pr *ParameterResolver) WithRichParametersFile(fileMap map[string]string) *ParameterResolver

type RootCmd

type RootCmd struct {
	// contains filtered or unexported fields
}

RootCmd contains parameters and helpers useful to all commands.

func (*RootCmd) AGPL

func (r *RootCmd) AGPL() []*clibase.Cmd

func (*RootCmd) Command

func (r *RootCmd) Command(subcommands []*clibase.Cmd) (*clibase.Cmd, error)

func (*RootCmd) Core

func (r *RootCmd) Core() []*clibase.Cmd

func (*RootCmd) InitClient

func (r *RootCmd) InitClient(client *codersdk.Client) clibase.MiddlewareFunc

InitClient sets client to a new client. It reads from global configuration files if flags are not set.

func (*RootCmd) InitClientMissingTokenOK

func (r *RootCmd) InitClientMissingTokenOK(client *codersdk.Client) clibase.MiddlewareFunc

func (*RootCmd) RunMain

func (r *RootCmd) RunMain(subcommands []*clibase.Cmd)

Main is the entrypoint for the Coder CLI.

func (*RootCmd) Server

func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.API, io.Closer, error)) *clibase.Cmd

func (*RootCmd) Verbosef added in v2.1.4

func (r *RootCmd) Verbosef(inv *clibase.Invocation, fmtStr string, args ...interface{})

Verbosef logs a message if verbose mode is enabled.

type WorkspaceCLIAction

type WorkspaceCLIAction int
const (
	WorkspaceCreate WorkspaceCLIAction = iota
	WorkspaceStart
	WorkspaceUpdate
	WorkspaceRestart
)

Directories

Path Synopsis
Package clibase offers an all-in-one solution for a highly configurable CLI application.
Package clibase offers an all-in-one solution for a highly configurable CLI application.

Jump to

Keyboard shortcuts

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