| 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) |
| } |
| */ |