aboutsummaryrefslogtreecommitdiffstats
path: root/utils/fs/fs.go
blob: cfab692c18c9098110d520c68f3d8e00e7629115 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Package fs interace and implementations used by storage/filesystem
package fs

import (
	"io"
	"os"
)

// FS interface represent an abstracted filesystem, so you can
// use NewRepositoryFromFS from any medium.
type FS interface {
	Stat(path string) (os.FileInfo, error)
	Open(path string) (ReadSeekCloser, error)
	ReadDir(path string) ([]os.FileInfo, error)
	Join(elem ...string) string
}

// ReadSeekCloser is a Reader, Seeker and Closer.
type ReadSeekCloser interface {
	io.ReadCloser
	io.Seeker
}