commit | 88d97b784d2f0b57f6026d2cf6e52723cb99efb6 | [log] [tgz] |
---|---|---|
author | Máximo Cuadros <mcuadros@gmail.com> | Fri Apr 14 22:35:15 2017 |
committer | Máximo Cuadros <mcuadros@gmail.com> | Fri Apr 14 22:35:15 2017 |
tree | 6dbece83abab9569df57e4828592f68cf04d6952 | |
parent | 0cf5fc1aad680745e4357f7b3f411ef99de9063f [diff] |
travis: go_import_path
An interface to abstract several storages.
This library was extracted from src-d/go-git.
go get -u gopkg.in/src-d/go-billy.v2/...
The library billy deals with storage systems and Billy is the name of a well-known, IKEA bookcase. That's it.
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(fs billy.Filesystem, path string) (*memory.Memory, error) {
memory := memory.New()
files, err := fs.ReadDir("/")
if err != nil {
return nil, err
}
for _, file := range files {
if !file.IsDir() {
orig, err := fs.Open(file.Name())
if err != nil {
continue
}
dest, err := memory.Create(file.Name())
if err != nil {
continue
}
if _, err = io.Copy(dest, orig); err != nil {
return nil, err
}
}
}
return memory, nil
}
MIT, see LICENSE