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¶
{
// Use relative paths for Windows, because we do not know the absolute path.
// fsys := afero.NewBasePathFs(afero.NewOsFs(), "testdata")
fsys := afero.NewOsFs()
finder := Finder{
Paths: []string{
"testdata\\home\\user",
"testdata\\etc",
},
Names: []string{"config.*"},
Type: FileTypeFile,
}
results, err := finder.Find(fsys)
if err != nil {
panic(err)
}
fmt.Println("On Windows:", results)
// Output:
// On Windows: [testdata\home\user\config.yaml testdata\etc\config.yaml]
}
On Windows: [testdata\home\user\config.yaml testdata\etc\config.yaml]
Source Files ¶
file_type.go finder.go glob_windows.go helpers.go
- Version
- v0.9.0 (latest)
- Published
- Mar 26, 2025
- Platform
- windows/amd64
- Imports
- 7 packages
- Last checked
- now –
Tools for package owners.