diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2016-08-12 02:01:21 +0200 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-08-12 02:01:21 +0200 |
commit | 89797d3e3c56a954b84dc69aaea8a37a736baf04 (patch) | |
tree | 61a3d23fba7bf56fece353bf0c38297c5dcb9555 /examples/object_storage/main.go | |
parent | 805cc777b083fee68a8834ebe1823d0b9dc6a00f (diff) | |
download | go-git-89797d3e3c56a954b84dc69aaea8a37a736baf04.tar.gz |
examples: object_storage example
Diffstat (limited to 'examples/object_storage/main.go')
-rw-r--r-- | examples/object_storage/main.go | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/examples/object_storage/main.go b/examples/object_storage/main.go new file mode 100644 index 0000000..5cba6e6 --- /dev/null +++ b/examples/object_storage/main.go @@ -0,0 +1,75 @@ +package main + +import ( + "fmt" + "io" + "os" + "time" + + "github.com/aerospike/aerospike-client-go" + + "gopkg.in/src-d/go-git.v3" +) + +func main() { + url := os.Args[2] + r, err := git.NewRepository(url, nil) + if err != nil { + panic(err) + } + + client, err := aerospike.NewClient("127.0.0.1", 3000) + if err != nil { + panic(err) + } + + r.Storage = NewAerospikeObjectStorage(url, client) + + switch os.Args[1] { + case "pull": + pull(r) + case "list": + list(r) + default: + panic("unknown option") + } +} + +func pull(r *git.Repository) { + fmt.Printf("Retrieving %q ...\n", os.Args[2]) + start := time.Now() + + if err := r.PullDefault(); err != nil { + panic(err) + } + + fmt.Printf("Time elapsed %s\n", time.Since(start)) +} + +func list(r *git.Repository) { + fmt.Printf("Listing commits from %q ...\n", os.Args[1]) + + iter, err := r.Commits() + if err != nil { + panic(err) + } + defer iter.Close() + + var count int + for { + //the commits are not shorted in any special order + commit, err := iter.Next() + if err != nil { + if err == io.EOF { + break + } + + panic(err) + } + + count++ + fmt.Println(commit) + } + + fmt.Printf("Total number of commits %d\n", count) +} |