Documentation ¶
Overview ¶
Package finder 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 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]
Click to show internal directories.
Click to hide internal directories.