diff options
Diffstat (limited to 'examples/fs_implementation/main.go')
-rw-r--r-- | examples/fs_implementation/main.go | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/examples/fs_implementation/main.go b/examples/fs_implementation/main.go deleted file mode 100644 index e5d2851..0000000 --- a/examples/fs_implementation/main.go +++ /dev/null @@ -1,118 +0,0 @@ -package main - -import "fmt" - -func main() { - fmt.Println("example to be fixed") -} - -/* -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "gopkg.in/src-d/go-git.v4" - "gopkg.in/src-d/go-git.v4/storage/filesystem" - "gopkg.in/src-d/go-git.v4/utils/fs" -) - -func main() { - if len(os.Args) != 2 { - usage() - os.Exit(1) - } - - fs := NewCustomFS(os.Args[1]) - - s, err := filesystem.NewStorage(fs, ".git") - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - repo, err := git.NewRepository(s) - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - iter, err := repo.Commits() - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - defer iter.Close() - - for { - commit, err := iter.Next() - if err != nil { - if err == io.EOF { - break - } - - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - fmt.Println(commit) - } -} - -func usage() { - fmt.Fprintf(os.Stderr, "%s <path to .git dir>", os.Args[0]) -} - -// A simple proxy filesystem example: It mimics local filesystems, using -// 'base' as its root and a funny path separator ("--"). -// -// Example: when constructed with 'newFS("tmp")', a path like 'foo--bar' -// will represent the local path "/tmp/foo/bar". -type CustomFS struct { - base string -} - -const separator = "--" - -func NewCustomFS(path string) *CustomFS { - return &CustomFS{ - base: path, - } -} - -func (fs *CustomFS) Stat(path string) (info os.FileInfo, err error) { - f, err := os.Open(fs.ToReal(path)) - if err != nil { - return nil, err - } - - defer func() { - errClose := f.Close() - if err == nil { - err = errClose - } - }() - - return f.Stat() -} - -func (fs *CustomFS) ToReal(path string) string { - parts := strings.Split(path, separator) - return filepath.Join(fs.base, filepath.Join(parts...)) -} - -func (fs *CustomFS) Open(path string) (fs.ReadSeekCloser, error) { - return os.Open(fs.ToReal(path)) -} - -func (fs *CustomFS) ReadDir(path string) ([]os.FileInfo, error) { - return ioutil.ReadDir(fs.ToReal(path)) -} - -func (fs *CustomFS) Join(elem ...string) string { - return strings.Join(elem, separator) -} -*/ |