mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-06-15 00:15:32 +02:00
Log duration of commands
This will help us diagnose performance issues
This commit is contained in:
@ -6,6 +6,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/go-errors/errors"
|
"github.com/go-errors/errors"
|
||||||
"github.com/jesseduffield/gocui"
|
"github.com/jesseduffield/gocui"
|
||||||
@ -102,10 +103,14 @@ func (self *cmdObjRunner) RunWithOutputAux(cmdObj ICmdObj) (string, error) {
|
|||||||
self.logCmdObj(cmdObj)
|
self.logCmdObj(cmdObj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t := time.Now()
|
||||||
output, err := sanitisedCommandOutput(cmdObj.GetCmd().CombinedOutput())
|
output, err := sanitisedCommandOutput(cmdObj.GetCmd().CombinedOutput())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
self.log.WithField("command", cmdObj.ToString()).Error(output)
|
self.log.WithField("command", cmdObj.ToString()).Error(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.log.Infof("%s (%s)", cmdObj.ToString(), time.Since(t))
|
||||||
|
|
||||||
return output, err
|
return output, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,12 +121,15 @@ func (self *cmdObjRunner) RunWithOutputsAux(cmdObj ICmdObj) (string, string, err
|
|||||||
self.logCmdObj(cmdObj)
|
self.logCmdObj(cmdObj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t := time.Now()
|
||||||
var outBuffer, errBuffer bytes.Buffer
|
var outBuffer, errBuffer bytes.Buffer
|
||||||
cmd := cmdObj.GetCmd()
|
cmd := cmdObj.GetCmd()
|
||||||
cmd.Stdout = &outBuffer
|
cmd.Stdout = &outBuffer
|
||||||
cmd.Stderr = &errBuffer
|
cmd.Stderr = &errBuffer
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
|
|
||||||
|
self.log.Infof("%s (%s)", cmdObj.ToString(), time.Since(t))
|
||||||
|
|
||||||
stdout := outBuffer.String()
|
stdout := outBuffer.String()
|
||||||
stderr, err := sanitisedCommandOutput(errBuffer.Bytes(), err)
|
stderr, err := sanitisedCommandOutput(errBuffer.Bytes(), err)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -144,6 +152,7 @@ func (self *cmdObjRunner) RunAndProcessLines(cmdObj ICmdObj, onLine func(line st
|
|||||||
if cmdObj.ShouldLog() {
|
if cmdObj.ShouldLog() {
|
||||||
self.logCmdObj(cmdObj)
|
self.logCmdObj(cmdObj)
|
||||||
}
|
}
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
cmd := cmdObj.GetCmd()
|
cmd := cmdObj.GetCmd()
|
||||||
stdoutPipe, err := cmd.StdoutPipe()
|
stdoutPipe, err := cmd.StdoutPipe()
|
||||||
@ -171,6 +180,8 @@ func (self *cmdObjRunner) RunAndProcessLines(cmdObj ICmdObj, onLine func(line st
|
|||||||
|
|
||||||
_ = cmd.Wait()
|
_ = cmd.Wait()
|
||||||
|
|
||||||
|
self.log.Infof("%s (%s)", cmdObj.ToString(), time.Since(t))
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,9 +248,14 @@ func (self *cmdObjRunner) runAndStreamAux(
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
onRun(handler, cmdWriter)
|
onRun(handler, cmdWriter)
|
||||||
|
|
||||||
err = cmd.Wait()
|
err = cmd.Wait()
|
||||||
|
|
||||||
|
self.log.Infof("%s (%s)", cmdObj.ToString(), time.Since(t))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errStr := stderr.String()
|
errStr := stderr.String()
|
||||||
if errStr != "" {
|
if errStr != "" {
|
||||||
|
Reference in New Issue
Block a user