filefilter

package
v0.1.28 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2025 License: MIT Imports: 12 Imported by: 2

Documentation

Index

Constants

View Source
const FileFilterSlug = "file-filter"

Variables

View Source
var (
	DefaultExcludedExts = []string{
		".png", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff",
		".mp3", ".wav", ".ogg", ".flac",
		".mp4", ".avi", ".mov", ".wmv",
		".zip", ".tar", ".gz", ".rar",
		".exe", ".dll", ".so", ".dylib",
		".pdf", ".doc", ".docx", ".xls", ".xlsx",
		".bin", ".dat", ".db", ".sqlite",
		".woff", ".ttf", ".eot", ".svg", ".webp", ".woff2",
		".lock",
	}

	DefaultExcludedDirs = []string{
		".git", ".svn", "node_modules", "vendor", ".history", ".idea", ".vscode", ".yardoc", "build", "dist", "sorbet",
	}

	DefaultExcludedMatchFilenames = []*regexp.Regexp{
		regexp.MustCompile(`.*-lock\.json$`),
		regexp.MustCompile(`go\.sum$`),
		regexp.MustCompile(`yarn\.lock$`),
		regexp.MustCompile(`package-lock\.json$`),
	}
)

Initialize default values

Functions

func NewFileFilterParameterLayer

func NewFileFilterParameterLayer() (layers.ParameterLayer, error)

Types

type FileFilter

type FileFilter struct {
	MaxFileSize           int64                  `yaml:"max-file-size,omitempty"`
	IncludeExts           []string               `yaml:"include-exts,omitempty"`
	ExcludeExts           []string               `yaml:"exclude-exts,omitempty"`
	MatchFilenames        []*regexp.Regexp       `yaml:"match-filenames,omitempty"`
	MatchPaths            []*regexp.Regexp       `yaml:"match-paths,omitempty"`
	ExcludeDirs           []string               `yaml:"exclude-dirs,omitempty"`
	GitIgnoreFilter       gitignore.GitIgnore    `yaml:"-"`
	DisableGitIgnore      bool                   `yaml:"disable-gitignore,omitempty"`
	ExcludeMatchFilenames []*regexp.Regexp       `yaml:"exclude-match-filenames,omitempty"`
	ExcludeMatchPaths     []*regexp.Regexp       `yaml:"exclude-match-paths,omitempty"`
	DisableDefaultFilters bool                   `yaml:"disable-default-filters,omitempty"`
	Verbose               bool                   `yaml:"verbose,omitempty"`
	Profiles              map[string]*FileFilter `yaml:"profiles,omitempty"`
	FilterBinaryFiles     bool                   `yaml:"filter-binary-files,omitempty"`

	// Default values (not serialized)
	DefaultExcludedExts           []string         `yaml:"-"`
	DefaultExcludedDirs           []string         `yaml:"-"`
	DefaultExcludedMatchFilenames []*regexp.Regexp `yaml:"-"`
}

func CreateFileFilterFromSettings

func CreateFileFilterFromSettings(parsedLayer *layers.ParsedLayer) (*FileFilter, error)

func FromYAML

func FromYAML(data []byte) (*FileFilter, error)

FromYAML deserializes the FileFilter from YAML format

func LoadFromFile

func LoadFromFile(filename string, profile string) (*FileFilter, error)

LoadFromFile loads a FileFilter configuration from a YAML file If a profile is specified, it returns the FileFilter for that profile

func NewFileFilter

func NewFileFilter(options ...FileFilterOption) *FileFilter

func (*FileFilter) FilterNode

func (ff *FileFilter) FilterNode(node *filewalker.Node) bool

func (*FileFilter) FilterPath

func (ff *FileFilter) FilterPath(filePath string) bool

func (*FileFilter) PrintConfiguredFilters

func (ff *FileFilter) PrintConfiguredFilters()

func (*FileFilter) SaveToFile

func (ff *FileFilter) SaveToFile(filename string) error

SaveToFile saves the FileFilter configuration to a YAML file

func (*FileFilter) ToYAML

func (ff *FileFilter) ToYAML() ([]byte, error)

ToYAML serializes the FileFilter to YAML format

type FileFilterOption

type FileFilterOption func(*FileFilter)

func WithDisableDefaultFilters

func WithDisableDefaultFilters(disable bool) FileFilterOption

func WithDisableGitIgnore

func WithDisableGitIgnore(disable bool) FileFilterOption

func WithExcludeDirs

func WithExcludeDirs(dirs []string) FileFilterOption

func WithExcludeExts

func WithExcludeExts(exts []string) FileFilterOption

func WithExcludeMatchFilenames

func WithExcludeMatchFilenames(patterns []string) FileFilterOption

func WithExcludeMatchPaths

func WithExcludeMatchPaths(patterns []string) FileFilterOption

func WithFilterBinaryFiles

func WithFilterBinaryFiles(filter bool) FileFilterOption

func WithGitIgnoreFilter

func WithGitIgnoreFilter(filter gitignore.GitIgnore) FileFilterOption

func WithIncludeExts

func WithIncludeExts(exts []string) FileFilterOption

func WithMatchFilenames

func WithMatchFilenames(patterns []string) FileFilterOption

func WithMatchPaths

func WithMatchPaths(patterns []string) FileFilterOption

func WithMaxFileSize

func WithMaxFileSize(size int64) FileFilterOption

func WithVerbose

func WithVerbose(verbose bool) FileFilterOption

type FileFilterSettings

type FileFilterSettings struct {
	MaxFileSize           int64    `glazed.parameter:"max-file-size"`
	DisableGitIgnore      bool     `glazed.parameter:"disable-gitignore"`
	DisableDefaultFilters bool     `glazed.parameter:"disable-default-filters"`
	Include               []string `glazed.parameter:"include"`
	Exclude               []string `glazed.parameter:"exclude"`
	MatchFilename         []string `glazed.parameter:"match-filename"`
	MatchPath             []string `glazed.parameter:"match-path"`
	ExcludeDirs           []string `glazed.parameter:"exclude-dirs"`
	ExcludeMatchFilename  []string `glazed.parameter:"exclude-match-filename"`
	ExcludeMatchPath      []string `glazed.parameter:"exclude-match-path"`
	FilterBinary          bool     `glazed.parameter:"filter-binary"`
	Verbose               bool     `glazed.parameter:"verbose"`
}

Jump to

Keyboard shortcuts

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