Documentation
¶
Overview ¶
Package locafero looks for files and directories in an {fs.Fs} filesystem.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NameWithExtensions ¶
NameWithExtensions creates a list of names from a base name and a list of extensions.
TODO: find a better name for this function.
func NameWithOptionalExtensions ¶
NameWithOptionalExtensions creates a list of names from a base name and a list of extensions, plus it adds the base name (without any extensions) to the end of the list.
TODO: find a better name for this function.
Types ¶
type FileType ¶
type FileType int
FileType represents the kind of entries Finder can return.
const ( FileTypeAny FileType = iota FileTypeFile FileTypeDir // Deprecated: Use [FileTypeAny] instead. FileTypeAll = FileTypeAny )
FileType represents the kind of entries Finder can return.
type Finder ¶
type Finder struct {
// Paths represents a list of locations that the [Finder] will search in.
//
// They are essentially the root directories or starting points for the search.
//
// Examples:
// - home/user
// - etc
Paths []string
// Names are specific entries that the [Finder] will look for within the given Paths.
//
// It provides the capability to search for entries with depth,
// meaning it can target deeper locations within the directory structure.
//
// It also supports glob syntax (as defined by [filepath.Match]), offering greater flexibility in search patterns.
//
// Examples:
// - config.yaml
// - home/*/config.yaml
// - home/*/config.*
Names []string
// Type restricts the kind of entries returned by the [Finder].
//
// This parameter helps in differentiating and filtering out files from directories or vice versa.
Type FileType
}
Finder looks for files and directories in an afero.Fs filesystem.
func (Finder) Find ¶
Find looks for files and directories in an afero.Fs filesystem.
Example ¶
fsys := afero.NewBasePathFs(afero.NewOsFs(), "testdata")
finder := Finder{
Paths: []string{
"/home/user",
"/etc",
},
Names: []string{"config.*"},
Type: FileTypeFile,
}
results, err := finder.Find(fsys)
if err != nil {
panic(err)
}
fmt.Println("On Unix:", results)
Output: On Unix: [/home/user/config.yaml /etc/config.yaml]