reload

package module
v2.12.7 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2022 License: MIT Imports: 11 Imported by: 1

README

Documentation

Index

Constants

View Source
const (
	PluginName string = "reload"
)

PluginName contains default plugin name.

Variables

This section is empty.

Functions

func ConvertIgnored

func ConvertIgnored(ignored []string) (map[string]struct{}, error)

ConvertIgnored is used to convert slice to map with ignored files

Types

type Config

type Config struct {
	// Interval is a global refresh interval
	Interval time.Duration `mapstructure:"interval"`

	// Patterns is a global file patterns to watch. It will be applied to every directory in project
	Patterns []string `mapstructure:"patterns"`

	// Plugins is set of services which would be reloaded in case of FS changes
	Plugins map[string]ServiceConfig `mapstructure:"services"`
}

Config is a Reload configuration point.

func (*Config) InitDefaults

func (c *Config) InitDefaults()

InitDefaults sets missing values to their default values.

func (*Config) Valid

func (c *Config) Valid() error

Valid validates the configuration.

type Event

type Event struct {
	Path string
	Info os.FileInfo
	// contains filtered or unexported fields
}

An Event describes an event that is received when files or directory changes occur. It includes the os.FileInfo of the changed file or directory and the type of event that's occurred and the full path of the file.

type Options

type Options func(*Watcher)

Options is used to set Watcher Options

type Plugin

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

func (*Plugin) CollectResettable

func (p *Plugin) CollectResettable(name endure.Named, r resetter.Resetter)

func (*Plugin) Collects

func (p *Plugin) Collects() []interface{}

func (*Plugin) Init

func (p *Plugin) Init(cfg config.Configurer, log *zap.Logger) error

Init controller service

func (*Plugin) Name

func (p *Plugin) Name() string

func (*Plugin) Serve

func (p *Plugin) Serve() chan error

func (*Plugin) Stop

func (p *Plugin) Stop() error

type ServiceConfig

type ServiceConfig struct {
	// Recursive is options to use nested files from root folder
	Recursive bool `mapstructure:"recursive"`

	// Patterns is per-service specific files to watch
	Patterns []string `mapstructure:"patterns"`

	// Dirs is per-service specific dirs which will be combined with Patterns
	Dirs []string `mapstructure:"dirs"`

	// Ignore is set of files which would not be watched
	Ignore []string `mapstructure:"ignore"`
}

type SimpleHook

type SimpleHook func(filename string, pattern []string) error

SimpleHook is used to filter by simple criteria, CONTAINS

type Watcher

type Watcher struct {
	// main event channel
	Event chan Event
	// contains filtered or unexported fields
}

func NewWatcher

func NewWatcher(configs []WatcherConfig, log *zap.Logger, options ...Options) (*Watcher, error)

NewWatcher returns new instance of File Watcher

func (*Watcher) StartPolling

func (w *Watcher) StartPolling(duration time.Duration) error

func (*Watcher) Stop

func (w *Watcher) Stop()

type WatcherConfig

type WatcherConfig struct {
	// service name
	ServiceName string

	// Recursive or just add by singe directory
	Recursive bool

	// Directories used per-service
	Directories []string

	// simple hook, just CONTAINS
	FilterHooks func(filename string, pattern []string) error

	// path to file with Files
	Files map[string]os.FileInfo

	// Ignored Directories, used map for O(1) amortized get
	Ignored map[string]struct{}

	// FilePatterns to ignore
	FilePatterns []string
}

Jump to

Keyboard shortcuts

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