config

package
v3.3.2 Latest Latest
Warning

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

Go to latest
Published: May 28, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FilterTypeBlock    = "FILTER_TYPE_BLOCK"
	FilterTypeDocument = "FILTER_TYPE_DOCUMENT"
)

Variables

View Source
var ErrRootConfigNotFound = errors.New("root configuration file not found")

Functions

This section is empty.

Types

type Config

type Config struct {
	ProjectRoot             string
	ProjectFilename         string
	ProjectFindRepoUpward   bool
	ProjectIgnorePaths      []string
	ProjectDisableGitignore bool
	ProjectEnvUseSystemEnv  bool
	ProjectEnvSources       []string
	ProjectFilters          []*Filter

	RuntimeDockerEnabled         bool
	RuntimeDockerImage           string
	RuntimeDockerBuildContext    string
	RuntimeDockerBuildDockerfile string

	ServerAddress     string
	ServerTLSEnabled  bool
	ServerTLSCertFile string
	ServerTLSKeyFile  string

	LogEnabled bool
	LogPath    string
	LogVerbose bool
}

Config is a flatten configuration of runme.yaml. The purpose of it is to unify all the different configuration versions into a single struct.

func ParseYAML

func ParseYAML(data []byte) (*Config, error)

type Filter

type Filter struct {
	Type      string
	Condition string
	Extra     map[string]interface{}
}

func (*Filter) Evaluate

func (f *Filter) Evaluate(env interface{}) (bool, error)

type FilterBlockEnv

type FilterBlockEnv struct {
	Background             bool     `expr:"background"`
	Categories             []string `expr:"categories"`
	CloseTerminalOnSuccess bool     `expr:"close_terminal_on_success"`
	Cwd                    string   `expr:"cwd"`
	ExcludeFromRunAll      bool     `expr:"exclude_from_run_all"`
	Interactive            bool     `expr:"interactive"`
	IsNamed                bool     `expr:"is_named"`
	Language               string   `expr:"language"`
	Name                   string   `expr:"name"`
	PromptEnv              bool     `expr:"prompt_env"`
}

FilterBlockEnv is the environment with fields corresponding to the options documented on https://docs.runme.dev/configuration/cell-level. Cell options are converted to this environment before evaluating the filter.

The `expr` tag is used to map the field to the corresponding option. Without it, all variables start with capitalized letters.

type FilterDocumentEnv

type FilterDocumentEnv struct {
	Cwd   string `expr:"cwd"`
	Shell string `expr:"shell"`
}

FilterDocumentEnv is the environment with fields corresponding to the options documented on https://docs.runme.dev/configuration/document-level. Document options are converted to this environment before evaluating the filter.

type Loader added in v3.3.1

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

Loader allows to load configuration files from a file system.

func NewLoader added in v3.3.1

func NewLoader(configName, configType string, configRootPath fs.FS, opts ...LoaderOption) *Loader

func (*Loader) FindConfigChain added in v3.3.1

func (l *Loader) FindConfigChain(path string) ([][]byte, error)

func (*Loader) RootConfig added in v3.3.1

func (l *Loader) RootConfig() ([]byte, error)

func (*Loader) SetConfigRootPath added in v3.3.1

func (l *Loader) SetConfigRootPath(configRootPath fs.FS)

type LoaderOption added in v3.3.1

type LoaderOption func(*Loader)

func WithLogger added in v3.3.1

func WithLogger(logger *zap.Logger) LoaderOption

func WithProjectRootPath added in v3.3.1

func WithProjectRootPath(projectRootPath fs.FS) LoaderOption

Directories

Path Synopsis
autoconfig provides a way to create various instances from the [config.Config] like [project.Project], [command.Session], [zap.Logger].
autoconfig provides a way to create various instances from the [config.Config] like [project.Project], [command.Session], [zap.Logger].

Jump to

Keyboard shortcuts

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