package locafero
import "github.com/sagikazarmark/locafero"
Package locafero looks for files and directories in an {fs.Fs} filesystem.
Index ¶
- func NameWithExtensions(baseName string, extensions ...string) []string
- func NameWithOptionalExtensions(baseName string, extensions ...string) []string
- type FileType
- type Finder
Examples ¶
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.
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.
Code:
Output: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]
}
On Unix: [/home/user/config.yaml /etc/config.yaml]
Source Files ¶
file_type.go finder.go glob.go helpers.go
- Version
- v0.9.0 (latest)
- Published
- Mar 26, 2025
- Platform
- linux/amd64
- Imports
- 7 packages
- Last checked
- 1 day ago –
Tools for package owners.