diff options
| author | Carlos Martín Nieto <[email protected]> | 2013-03-06 23:59:33 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2013-03-06 23:59:33 +0100 |
| commit | 5c09440f4252223e9f0f49e7d67accd2d7455bbe (patch) | |
| tree | 5fcf0114194960456205b7d5f5aab23dfab5c661 | |
| parent | 677378bc3434123eb68a543b256479772bca5631 (diff) | |
Add a couple of missing methods around Blob
| -rw-r--r-- | blob.go | 4 | ||||
| -rw-r--r-- | repository.go | 11 |
2 files changed, 15 insertions, 0 deletions
@@ -20,6 +20,10 @@ func (v *Blob) Free() { C.git_object_free(v.ptr) } +func (v *Blob) Size() int64 { + return int64(C.git_blob_rawsize(v.ptr)) +} + func (v *Blob) Contents() []byte { size := C.int(C.git_blob_rawsize(v.ptr)) buffer := unsafe.Pointer(C.git_blob_rawcontent(v.ptr)) diff --git a/repository.go b/repository.go index bfbd781..4cc8c5d 100644 --- a/repository.go +++ b/repository.go @@ -92,6 +92,17 @@ func (v *Repository) LookupCommit(o *Oid) (*Commit, error) { return commit, nil } +func (v *Repository) LookupBlob(o *Oid) (*Blob, error) { + blob := new(Blob) + ecode := C.git_blob_lookup(&blob.ptr, v.ptr, o.toC()) + if ecode < 0 { + return nil, LastError() + } + + runtime.SetFinalizer(blob, (*Blob).Free) + return blob, nil +} + func (v *Repository) Walk() (*RevWalk, error) { walk := new(RevWalk) ecode := C.git_revwalk_new(&walk.ptr, v.ptr) |
