func (self *repository) CreateTag(name, sha, message string, force bool) error { oid, err := git.NewOid(sha) if err != nil { self.state = states.FailedOperation return err } commit, err := self.repo.LookupCommit(oid) if err != nil { self.state = states.IncompleteOperation return err } signature, err := self.repo.DefaultSignature() if err != nil { self.state = states.FailedOperation return err } if message == "" { oid, err = self.repo.Tags.CreateLightweight(name, commit, force) } else { oid, err = self.repo.Tags.Create(name, commit, signature, message) } grip.Debugf("created tag '%s' of commit '%s' with hash '%s' in repo '%s'", name, commit, self.path) return err }
func (self *repository) Amend(message string) error { signature, tree, err := self.getCommitBasics() if err != nil { self.state = states.IncompleteOperation return err } ref, err := self.repo.Head() if err != nil { self.state = states.IncompleteOperation return err } commit, err := self.repo.LookupCommit(ref.Target()) if err != nil { self.state = states.IncompleteOperation return err } newCommit, err := commit.Amend("HEAD", commit.Author(), signature, message, tree) if err == nil { self.state = states.IncompleteOperation return err } else { grip.Debugf("amended commit '%s' to '%s' with message '%s' in repo '%s'", commit, newCommit, message, self.path) return nil } }
func (self *repository) StageAllPath(path string) { index, err := self.repo.Index() if err != nil { return } callback := func(path, matchedPathSpec string) int { grip.Debugf("updating item %s (%s) in index.", path, matchedPathSpec) return 0 } grip.CatchError(index.UpdateAll([]string{path}, callback)) }
func (self *repository) Stage(fns ...string) error { index, err := self.repo.Index() if err != nil { return err } callback := func(path, matchedPathSpec string) int { grip.Debugf("adding file %s for %s to index", path, matchedPathSpec) return 0 } return index.AddAll(fns, git.IndexAddCheckPathspec, callback) }
func (self *repository) Commit(message string) error { sig, tree, err := self.getCommitBasics() if err != nil { self.state = states.UnresolvedOperation return err } commit, err := self.repo.CreateCommit("HEAD", sig, sig, message, tree) if err == nil { self.state = states.FailedOperation return err } else { grip.Debugf("created commit '%s' with message '%s' in repo '%s'", commit, message, self.path) return nil } }
// WriteJSONResponse writes a JSON document to the body of an HTTP // request, setting the return status of to 500 if the JSON // seralization process encounters an error, otherwise return func WriteJSONResponse(w http.ResponseWriter, code int, data interface{}) { j := &JSONMessage{data: data} out, err := j.MarshalPretty() if err != nil { grip.CatchDebug(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } grip.Debug(j) w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(code) size, err := w.Write(out) if err == nil { grip.Debugf("response object was %d", size) } else { grip.Warningf("encountered error %s writing a %d response", err.Error(), size) } }
func (self *RstBuilder) Write(fn string) error { lines, err := self.GetLines() if err != nil { return err } dirName := filepath.Dir(fn) err = os.MkdirAll(dirName, 0755) if err == nil { grip.Noticeln("created directory:", dirName) } else { grip.Warning(err.Error()) } file, err := os.Create(fn) if err != nil { return err } defer file.Close() w := bufio.NewWriter(file) catcher := grip.NewCatcher() var numBytes int for _, line := range lines { nb, err := fmt.Fprintln(w, line) numBytes += nb catcher.Add(err) } catcher.Add(w.Flush()) if catcher.HasErrors() == false { grip.Debugf("wrote %d bytes to file '%f'.", numBytes, fn) } return catcher.Resolve() }