Example #1
0
func (p *Project) AddDocumentToIndex(doc *pb.Document) error {
	oid, size, err := p.createDocument(doc)
	if err != nil {
		return fmt.Errorf("object couldn't be created: %v", err)
	}

	info := doc.GetInfo()
	if info == nil {
		return ErrNilObjectInfo
	}

	entry := &git.IndexEntry{
		Mode: git.FilemodeBlob,
		Size: uint32(size),
		Id:   oid,
		Path: info.Path,
	}

	index, err := p.repo.Index()
	if err != nil {
		return fmt.Errorf("could not retreive index: %v", err)
	}

	err = index.Add(entry)
	if err != nil {
		return err
	}

	return index.Write()
}