Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
Till Wegmüller ac42675b20 Fixup go module path 4 meses atrás
helper Add capability tests to chroot, mount and polyfill 1 ano atrás
memfs Rename capability names to <name>Capability 1 ano atrás
osfs Merge syscall stuff 4 meses atrás
test Add TempDir 1 ano atrás
util Add TempDir 1 ano atrás
.gitignore Add TempDir 1 ano atrás
.travis.yml ci: test Go 1.9.x and 1.10.x 1 ano atrás
DCO added DCO 1 ano atrás
LICENSE LICENSE: changed to Apache 2.0 1 ano atrás
MAINTAINERS MAINTAINERS: add @mcuadros 1 ano atrás
Makefile travis: add codecov.io (#13) 2 anos atrás
README.md readme: fix a brok en sentenc 1 ano atrás
appveyor.yml bump v4 version 1 ano atrás
fs.go Rename capability names to <name>Capability 1 ano atrás
fs_test.go Add capability tests to chroot, mount and polyfill 1 ano atrás
go.mod Fixup go module path 4 meses atrás
go.sum go modules support 1 ano atrás

README.md

go-billy GoDoc Build Status Build status codecov

The missing interface filesystem abstraction for Go. Billy implements an interface based on the os standard library, allowing to develop applications without dependency on the underlying storage. Makes it virtually free to implement mocks and testing over filesystem operations.

Billy was born as part of src-d/go-git project.

Installation

go get -u gopkg.in/src-d/go-billy.v4/...

Usage

Billy exposes filesystems using the Filesystem interface. Each filesystem implementation gives you a New method, whose arguments depend on the implementation itself, that returns a new Filesystem.

The following example caches in memory all readable files in a directory from any billy’s filesystem implementation.

func LoadToMemory(origin billy.Filesystem, path string) (*memory.Memory, error) {
	memory := memory.New()

	files, err := origin.ReadDir("/")
	if err != nil {
		return nil, err
	}

	for _, file := range files {
		if file.IsDir() {
			continue
		}

		src, err := origin.Open(file.Name())
		if err != nil {
			return nil, err
		}

		dst, err := memory.Create(file.Name())
		if err != nil {
			return nil, err
		}

		if _, err = io.Copy(dst, src); err != nil {
			return nil, err
		}

		if err := dst.Close(); err != nil {
			return nil, err
		}

		if err := src.Close(); err != nil {
			return nil, err
		}
	}

	return memory, nil
}

Why billy?

The library billy deals with storage systems and Billy is the name of a well-known, IKEA bookcase. That’s it.

License

Apache License Version 2.0, see LICENSE