go-billy filesystem that wraps afero. It lets use afero filesystems with software that expects go-billy, for example with go-git.
go get gopkg.in/jfontan/go-billy-desfacer.v0
package main
import (
"fmt"
"github.com/spf13/afero"
"gopkg.in/jfontan/go-billy-desfacer.v0"
)
func main() {
// wrap an afero filesystem to billy interface
aferofs := afero.NewMemMapFs()
billyfs := desfacer.New(aferofs)
// create a file with billy interface
billyfile, err := billyfs.Create("file")
if err != nil {
panic(err)
}
_, err = billyfile.Write([]byte("some data"))
if err != nil {
panic(err)
}
_ = billyfile.Close()
// read file directly in afero filesystem
aferofile, err := aferofs.Open("file")
if err != nil {
panic(err)
}
buf := make([]byte, 32)
n, err := aferofile.Read(buf)
if err != nil {
panic(err)
}
_ = aferofile.Close()
fmt.Println(string(buf[:n]))
}- The functions
SymlinkandReadlinkare not implemented as afero does not have that functionality.
"desfacer" means "to undo" or "to unmake" in Galician and old Spanish.
Apache License Version 2.0, see LICENSE.