launchr

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package launchr provides common app functionality.

Index

Constants

View Source
const PkgPath = "github.com/launchrctl/launchr"

PkgPath is a main module path.

Variables

View Source
var (
	ErrNoConfigFile = errors.New("config file is not found") // ErrNoConfigFile when config file doesn't exist in FS.
)

Functions

func EnsurePath

func EnsurePath(parts ...string) error

EnsurePath creates all directories in the path.

func GetFsAbsPath

func GetFsAbsPath(fs fs.FS) string

GetFsAbsPath returns absolute path for a FS struct.

func GetTypePkgPathName added in v0.1.0

func GetTypePkgPathName(v interface{}) (string, string)

GetTypePkgPathName returns type package path and name for internal usage.

func InitPluginInfo added in v0.1.0

func InitPluginInfo(pi *PluginInfo, p Plugin)

InitPluginInfo sets private fields for internal usage only.

func InitServiceInfo added in v0.1.0

func InitServiceInfo(si *ServiceInfo, s Service)

InitServiceInfo sets private fields for internal usage only.

func RegisterPlugin added in v0.1.0

func RegisterPlugin(p Plugin)

RegisterPlugin add a plugin to global pull.

Types

type App added in v0.1.0

type App interface {
	// Name returns app name.
	Name() string
	// GetWD provides app's working dir.
	GetWD() string
	// Streams returns application cli.
	Streams() cli.Streams
	// AddService registers a service in the app.
	// Panics if a service is not unique.
	AddService(s Service)
	// GetService retrieves a service of type v and assigns it to v.
	// Panics if a service is not found.
	GetService(v interface{})
	// RegisterFS registers a File System in launchr.
	// It may be a FS for action discovery, see action.DiscoveryFS.
	RegisterFS(fs ManagedFS)
	// GetRegisteredFS returns an array of registered File Systems.
	GetRegisteredFS() []ManagedFS
}

App stores global application state.

type AppVersion added in v0.1.0

type AppVersion struct {
	Name        string
	Version     string
	OS          string
	Arch        string
	BuiltWith   string
	CoreVersion string
	CoreReplace string
	Plugins     []string
}

AppVersion stores application version.

func NewVersion added in v0.1.0

func NewVersion(name, ver, bwith string, plugins PluginsMap) *AppVersion

NewVersion creates version info with used plugins info.

func Version added in v0.1.0

func Version() *AppVersion

Version provides app version info.

func (*AppVersion) Full added in v0.1.0

func (v *AppVersion) Full() string

Full outputs version string in a full format.

func (*AppVersion) Short added in v0.1.0

func (v *AppVersion) Short() string

Short outputs a short version string.

func (*AppVersion) String added in v0.2.1

func (v *AppVersion) String() string

String implements Stringer interface.

type CobraPlugin added in v0.1.0

type CobraPlugin interface {
	Plugin
	// CobraAddCommands is a hook called when cobra root command is available.
	// Plugins may register its command line commands here.
	CobraAddCommands(*cobra.Command) error
}

CobraPlugin is an interface to implement a plugin for cobra.

type Config added in v0.1.0

type Config interface {
	Service
	// DirPath returns an absolute path to config directory.
	DirPath() string
	// Path provides an absolute path to launchr config directory.
	Path(parts ...string) string
	// EnsurePath creates all directories in the path.
	EnsurePath(parts ...string) error
	// Get returns a value by key to a parameter v. Parameter v must be a pointer to a value.
	// Error may be returned on decode.
	Get(key string, v interface{}) error
}

Config is a launchr config storage interface.

func ConfigFromFS added in v0.1.0

func ConfigFromFS(root fs.FS) Config

ConfigFromFS parses launchr app config directory and its content.

type ConfigAware added in v0.1.0

type ConfigAware interface {
	// SetLaunchrConfig sets a launchr config to the struct.
	SetLaunchrConfig(Config)
}

ConfigAware provides an interface for structs to support launchr configuration setting.

type GeneratePlugin added in v0.1.0

type GeneratePlugin interface {
	Plugin
	// Generate is a function called when application is generating code and assets for the build.
	Generate(buildPath string, workDir string) (*PluginGeneratedData, error)
}

GeneratePlugin is an interface to generate supporting files before build.

type ManagedFS added in v0.5.5

type ManagedFS interface {
	fs.FS
	FS() fs.FS
}

ManagedFS is a common interface for FS registered in launchr.

type OnAppInitPlugin added in v0.1.0

type OnAppInitPlugin interface {
	Plugin
	// OnAppInit is hook function called on application initialisation.
	// Plugins may save app global object, retrieve or provide services here.
	OnAppInit(app App) error
}

OnAppInitPlugin is an interface to implement a plugin for app initialisation.

type Plugin added in v0.1.0

type Plugin interface {
	// PluginInfo requests a type to provide information about the plugin.
	PluginInfo() PluginInfo
}

Plugin is a common interface for launchr plugins.

type PluginGeneratedData added in v0.1.0

type PluginGeneratedData struct {
	Plugins []string
}

PluginGeneratedData is a struct containing a result information of plugin generation.

type PluginInfo added in v0.1.0

type PluginInfo struct {
	// Weight defines the order of plugins calling. @todo rework to a real dependency resolving.
	Weight int
	// contains filtered or unexported fields
}

PluginInfo provides information about the plugin and is used as a unique data to indentify a plugin.

func (PluginInfo) String added in v0.1.0

func (p PluginInfo) String() string

type PluginManager added in v0.1.0

type PluginManager interface {
	Service
	All() PluginsMap
}

PluginManager handles plugins.

func NewPluginManagerWithRegistered added in v0.1.0

func NewPluginManagerWithRegistered() PluginManager

NewPluginManagerWithRegistered creates PluginManager with registered plugins.

type PluginsMap added in v0.1.0

type PluginsMap = map[PluginInfo]Plugin

PluginsMap is a type alias for plugins map.

type Service

type Service interface {
	ServiceInfo() ServiceInfo
}

Service is a common interface for a service to register.

type ServiceInfo

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

ServiceInfo provides service info for its initialization.

func (ServiceInfo) String added in v0.1.0

func (s ServiceInfo) String() string

Jump to

Keyboard shortcuts

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