gocodewalker

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GitIgnore = ".gitignore"
	Ignore    = ".ignore"
)

Variables

View Source
var ErrTerminateWalk = errors.New("gocodewalker terminated")

ErrTerminateWalk error which indicates that the walker was terminated

Functions

func FindRepositoryRoot

func FindRepositoryRoot(startDirectory string) string

FindRepositoryRoot given the supplied directory backwards looking for .git or .hg directories indicating we should start our search from that location as it's the root. Returns the first directory below supplied with .git or .hg in it otherwise the supplied directory

func GetExtension

func GetExtension(name string) string

GetExtension is a custom version of extracting extensions for a file which deals with extensions specific to code such as .travis.yml and the like

func IsHidden

func IsHidden(file fs.FileInfo, directory string) (bool, error)

IsHidden Returns true if file is hidden

Types

type File

type File struct {
	Location string
	Filename string
}

File is a struct returned which contains the location and the filename of the file that passed all exclusion rules

type FileWalker

type FileWalker struct {
	LocationExcludePattern []string // Case-sensitive patterns which exclude directory/file matches
	IncludeDirectory       []string
	ExcludeDirectory       []string // Paths to always ignore such as .git,.svn and .hg
	IncludeFilename        []string
	ExcludeFilename        []string
	IncludeDirectoryRegex  []*regexp.Regexp // Must match regex as logical OR IE can match any of them
	ExcludeDirectoryRegex  []*regexp.Regexp
	IncludeFilenameRegex   []*regexp.Regexp
	ExcludeFilenameRegex   []*regexp.Regexp
	AllowListExtensions    []string // Which extensions should be allowed case sensitive
	ExcludeListExtensions  []string // Which extensions should be excluded case sensitive
	GitIgnores             []gitignore.GitIgnore

	IgnoreIgnoreFile bool // Should .ignore files be respected?
	IgnoreGitIgnore  bool // Should .gitignore files be respected?
	IncludeHidden    bool // Should hidden files and directories be included/walked
	// contains filtered or unexported fields
}

func NewFileWalker

func NewFileWalker(directory string, fileListQueue chan *File) *FileWalker

NewFileWalker constructs a filewalker, which will walk the supplied directory and output File results to the supplied queue as it finds them

func (*FileWalker) SetErrorHandler

func (f *FileWalker) SetErrorHandler(errors func(error) bool)

SetErrorHandler sets the function that is called on processing any error where if you return true it will attempt to continue processing, and if false will return the error instantly

func (*FileWalker) Start

func (f *FileWalker) Start() error

Start will start walking the supplied directory with the supplied settings and putting files that mach into the supplied channel. Returns usual ioutil errors if there is a file issue and a ErrTerminateWalk if terminate is called while walking

func (*FileWalker) Terminate

func (f *FileWalker) Terminate()

Terminate have the walker break out of walking and return as soon as it possibly can. This is needed because this walker needs to work in a TUI interactive mode and as such we need to be able to end old processes

func (*FileWalker) Walking

func (f *FileWalker) Walking() bool

Walking gets the state of the file walker and determine if we are walking or not

Jump to

Keyboard shortcuts

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