backup

package
v0.0.0-...-3c85b78 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SortByInterpolation = iota
	SortByBornAt        = iota
	SortByModifiedAt    = iota
	SortByArchivedAt    = iota
)
View Source
const (

	// SubstitutionMarker The substitution marker must be an ASCII character and
	// must not be a regex meta character
	SubstitutionMarker = '%'
)

Variables

This section is empty.

Functions

func FindPrevious

func FindPrevious(cron *cronexpr.Expression, moment time.Time) time.Time

func MakeLegalAlias

func MakeLegalAlias(text string) (string, bool)

func ParseDirectoryPattern

func ParseDirectoryPattern(pattern string) (*regexp.Regexp, error)

func ParseFilePattern

func ParseFilePattern(pattern string) (*regexp.Regexp, error)

Types

type Defaults

type Defaults struct {
	Schedule       *cronexpr.Expression
	Sort           string
	RetentionCount uint64
	RetentionAge   time.Duration
	Purge          bool
}

type Definition

type Definition []*Directory

func ParseDefinition

func ParseDefinition(definitionsReader io.Reader) (Definition, error)

type Directory

type Directory struct {
	Alias        string
	SafeAlias    string
	Filter       DirectoryFilter
	Files        []*FileDefinition
	ActiveGroups []string
}

func (*Directory) MarshalJSON

func (dir *Directory) MarshalJSON() ([]byte, error)

type DirectoryFilter

type DirectoryFilter struct {
	Pattern   string
	Template  []string
	Layers    []*regexp.Regexp
	Variables []VariableDefinition
}

func ParsePathPattern

func ParsePathPattern(pattern string) (filter DirectoryFilter, variableOffsets map[string]uint)

ParsePathPattern based upon the given path pattern, a directory filter is created. That DirectoryFilter contains the required regular expressions for each detected variable (like {{myvar}})

func (*DirectoryFilter) MarshalJSON

func (filter *DirectoryFilter) MarshalJSON() ([]byte, error)

type FileDefinition

type FileDefinition struct {
	Pattern         string
	Filter          *regexp.Regexp
	VariableMapping []VariableReference
	Alias           string
	SafeAlias       string
	Schedule        *cronexpr.Expression
	SortBy          int
	Purge           bool
	RetentionCount  uint64
	RetentionAge    time.Duration
}

func (*FileDefinition) MarshalJSON

func (file *FileDefinition) MarshalJSON() ([]byte, error)

type RawDefinition

type RawDefinition map[string]*RawDirectory

func ParseRawDefinitions

func ParseRawDefinitions(definitionsReader io.Reader) (RawDefinition, error)

type RawDirectory

type RawDirectory struct {
	Alias    string
	FuseVars []string
	Defaults *Defaults
	Files    map[string]*RawFile
}

type RawFile

type RawFile struct {
	Alias          string
	Schedule       *cronexpr.Expression
	Sort           string
	RetentionCount uint64
	RetentionAge   time.Duration
	Purge          bool
}

type TimeParser

type TimeParser func(string, *Timestamp)

type Timestamp

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

func (Timestamp) String

func (t Timestamp) String() string

func (Timestamp) TimeWithDefaults

func (t Timestamp) TimeWithDefaults(defaults time.Time) time.Time

func (Timestamp) ToTime

func (t Timestamp) ToTime() time.Time

type VariableDefinition

type VariableDefinition struct {
	Name   string
	Parser TimeParser
	Fuse   bool
}

func ExpandSubstitutions

func ExpandSubstitutions(input string) (expanded string, captures []VariableDefinition)

func ExpandSubstitutionsInto

func ExpandSubstitutionsInto(input string, text *strings.Builder) (captures []VariableDefinition)

type VariableReference

type VariableReference struct {
	Offset     uint
	Conversion func(string) string
	Parser     TimeParser
}

Jump to

Keyboard shortcuts

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