cli

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package cli implements printing functionality for CLI output.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetFsAbsPath

func GetFsAbsPath(fs fs.FS) string

GetFsAbsPath returns absolute path for a FS struct.

func Print

func Print(format string, a ...any)

Print formats a string.

func Println

func Println(format string, a ...any)

Println formats a string and adds a new line.

Types

type AppCli

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

AppCli is a global app config.

func (*AppCli) Apply

func (cli *AppCli) Apply(ops ...AppCliOption) error

Apply all the operation on the cli

func (*AppCli) Config

func (cli *AppCli) Config() *GlobalConfig

Config returns cli global configuration.

func (*AppCli) Err

func (cli *AppCli) Err() io.Writer

Err returns the writer used for stderr

func (*AppCli) In

func (cli *AppCli) In() *streams.In

In returns the reader used for stdin

func (*AppCli) Out

func (cli *AppCli) Out() *streams.Out

Out returns the writer used for stdout

type AppCliOption

type AppCliOption func(cli *AppCli) error

AppCliOption applies a modification on a DockerCli.

func WithFakeStreams

func WithFakeStreams() AppCliOption

WithFakeStreams provides fake in/out/err streams.

func WithGlobalConfigFromDir

func WithGlobalConfigFromDir(dirRoot fs.FS) AppCliOption

WithGlobalConfigFromDir is a hook to initialize global config.

func WithStandardStreams

func WithStandardStreams() AppCliOption

WithStandardStreams sets a cli in, out and err streams with the standard streams.

type BuildDefinition

type BuildDefinition struct {
	Context   string             `yaml:"context"`
	Buildfile string             `yaml:"buildfile"`
	Args      map[string]*string `yaml:"args"`
	Tags      []string           `yaml:"tags"`
}

BuildDefinition stores image build definition.

func PrepareImageBuildDefinition

func PrepareImageBuildDefinition(cwd string, build *BuildDefinition, imageName string) *BuildDefinition

PrepareImageBuildDefinition preprocesses build info to be ready for driver.

func (*BuildDefinition) UnmarshalYAML

func (l *BuildDefinition) UnmarshalYAML(n *yaml.Node) (err error)

UnmarshalYAML implements yaml.Unmarshaler to parse build options from a string or a struct.

type Cli

type Cli interface {
	In() *streams.In
	Out() *streams.Out
	Err() io.Writer
	Config() *GlobalConfig
}

Cli is an interface for app common cli.

func NewAppCli

func NewAppCli(ops ...AppCliOption) (Cli, error)

NewAppCli creates AppCli configuration to be used in output for actions.

type GlobalConfig

type GlobalConfig struct {
	Images map[string]*BuildDefinition `yaml:"images"`
	// contains filtered or unexported fields
}

GlobalConfig is a global config structure.

func GlobalConfigFromDir

func GlobalConfigFromDir(root fs.FS) (*GlobalConfig, error)

GlobalConfigFromDir parses global app config.

func (*GlobalConfig) ConfigDir

func (cfg *GlobalConfig) ConfigDir() string

ConfigDir returns config dir path.

func (*GlobalConfig) ImageBuildInfo

func (cfg *GlobalConfig) ImageBuildInfo(image string) *BuildDefinition

ImageBuildInfo retrieves image build info from global config.

type Streams

type Streams interface {
	In() *streams.In
	Out() *streams.Out
	Err() io.Writer
}

Streams is an interface which exposes the standard input and output streams

Directories

Path Synopsis
Package streams has functionality related to in/out/err streams.
Package streams has functionality related to in/out/err streams.

Jump to

Keyboard shortcuts

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