Help us shape the future of Go! Take the 2026 Go Developer Survey

filepathx

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 1, 2021 License: MIT Imports: 3 Imported by: 78

README

filepathx

A small filepath extension library that supports double star globbling.

Documentation

GoDoc: https://pkg.go.dev/github.com/yargevad/filepathx

Install

go get github.com/yargevad/filepathx

Usage Example

You can use a/**/*.* to match everything under the a directory that contains a dot, like so:

package main

import (
	"fmt"
	"os"

	"github.com/yargevad/filepathx"
)

func main() {
	if 2 != len(os.Args) {
		fmt.Println(len(os.Args), os.Args)
		fmt.Fprintf(os.Stderr, "Usage: go build example/find/*.go; ./find <pattern>\n")
		os.Exit(1)
		return
	}
	pattern := os.Args[1]

	matches, err := filepathx.Glob(pattern)
	if err != nil {
		panic(err)
	}

	for _, match := range matches {
		fmt.Printf("MATCH: [%v]\n", match)
	}
}

Given this directory structure:

find a
a
a/b
a/b/c.d
a/b/c.d/e.f

This will be the output:

go build example/find/*.go
./find 'a/**/*.*'
MATCH: [a/b/c.d]
MATCH: [a/b/c.d/e.f]

Documentation

Overview

Package filepathx adds double-star globbing support to the Glob function from the core path/filepath package. You might recognize "**" recursive globs from things like your .gitignore file, and zsh. The "**" glob represents a recursive wildcard matching zero-or-more directory levels deep.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Glob

func Glob(pattern string) ([]string, error)

Glob adds double-star support to the core path/filepath Glob function. It's useful when your globs might have double-stars, but you're not sure.

Types

type Globs

type Globs []string

Globs represents one filepath glob, with its elements joined by "**".

func (Globs) Expand

func (globs Globs) Expand() ([]string, error)

Expand finds matches for the provided Globs.

Directories

Path Synopsis
example
find command

Jump to

Keyboard shortcuts

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