summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Soto <hsotoorellana@gmail.com>2018-12-30 14:47:15 -0300
committerIbrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>2018-12-30 17:47:15 +0000
commit54472431cafcf0041475ce86571bf9d4528dbf1b (patch)
treeaffc83f2d136558b0f3f834c0471d542ce9b9ca3
parentFix RNG seeding and add a test. (#51) (diff)
downloadgitbatch-54472431cafcf0041475ce86571bf9d4528dbf1b.tar.gz
Minor checks and changes throughout files (#53)
* Use length var on test * Add err check * Inline returning errors * Inline errors and reverse nil checks * add comment why not return error
-rw-r--r--pkg/app/quick.go1
-rw-r--r--pkg/git/branch.go5
-rw-r--r--pkg/gui/authenticationview.go41
-rw-r--r--pkg/gui/commitview.go33
-rw-r--r--pkg/gui/gui.go8
-rw-r--r--pkg/gui/mainview.go12
-rw-r--r--pkg/gui/sideviews.go21
-rw-r--r--pkg/gui/stashview.go7
-rw-r--r--pkg/gui/statusview.go77
-rw-r--r--pkg/gui/unstagedview.go12
-rw-r--r--pkg/gui/util-common.go17
-rw-r--r--pkg/gui/util-textstyle.go11
-rw-r--r--pkg/helpers/utils_test.go5
13 files changed, 135 insertions, 115 deletions
diff --git a/pkg/app/quick.go b/pkg/app/quick.go
index fba5d8f..488e1d6 100644
--- a/pkg/app/quick.go
+++ b/pkg/app/quick.go
@@ -9,7 +9,6 @@ import (
)
func quick(directories []string, depth int, mode string) {
-
var wg sync.WaitGroup
start := time.Now()
for _, dir := range directories {
diff --git a/pkg/git/branch.go b/pkg/git/branch.go
index e5facf8..d3b2425 100644
--- a/pkg/git/branch.go
+++ b/pkg/git/branch.go
@@ -117,6 +117,7 @@ func (e *RepoEntity) Checkout(branch *Branch) error {
if branch.Name == e.Branch.Name {
return nil
}
+
w, err := e.Repository.Worktree()
if err != nil {
log.Warn("Cannot get work tree " + err.Error())
@@ -130,7 +131,9 @@ func (e *RepoEntity) Checkout(branch *Branch) error {
}
// make this conditional on global scale
- err = e.Remote.SyncBranches(branch.Name)
+ // we don't care if this function returns an error
+ e.Remote.SyncBranches(branch.Name)
+
return e.Refresh()
}
diff --git a/pkg/gui/authenticationview.go b/pkg/gui/authenticationview.go
index b644b6b..a274425 100644
--- a/pkg/gui/authenticationview.go
+++ b/pkg/gui/authenticationview.go
@@ -12,10 +12,12 @@ import (
var (
// this is required so we can know where we can return
authenticationReturnView string
+
// these views used as a label for git repository address and credential views
authenticationViewFeature = viewFeature{Name: "authentication", Title: " Authentication "}
authUserLabelFeature = viewFeature{Name: "authuserlabel", Title: " User: "}
authPswdLabelViewFeature = viewFeature{Name: "authpasswdlabel", Title: " Password: "}
+
// these views used as a input for the credentials
authUserFeature = viewFeature{Name: "authuser", Title: " User "}
authPasswordViewFeature = viewFeature{Name: "authpasswd", Title: " Password "}
@@ -77,13 +79,25 @@ func (gui *Gui) closeAuthenticationView(g *gocui.Gui, v *gocui.View) error {
// close the opened auth views and submit the credentials
func (gui *Gui) submitAuthenticationView(g *gocui.Gui, v *gocui.View) error {
g.Cursor = false
+
// in order to read buffer of the views, first we need to find'em
- v_user, err := g.View(authUserFeature.Name)
- v_pswd, err := g.View(authPasswordViewFeature.Name)
+ vUser, err := g.View(authUserFeature.Name)
+ if err != nil {
+ log.Errorln("error while retrieving user from view:", err)
+ return err // should return??
+ }
+
+ vPswd, err := g.View(authPasswordViewFeature.Name)
+ if err != nil {
+ log.Errorln("error while retrieving password from view:", err)
+ return err // should return??
+ }
+
// the return string of the views contain trailing new lines
re := regexp.MustCompile(`\r?\n`)
- creduser := re.ReplaceAllString(v_user.ViewBuffer(), "")
- credpswd := re.ReplaceAllString(v_pswd.ViewBuffer(), "")
+ creduser := re.ReplaceAllString(vUser.ViewBuffer(), "")
+ credpswd := re.ReplaceAllString(vPswd.ViewBuffer(), "")
+
// since the git ops require different types of options we better switch
switch mode := jobRequiresAuth.JobType; mode {
case git.FetchJob:
@@ -105,15 +119,22 @@ func (gui *Gui) submitAuthenticationView(g *gocui.Gui, v *gocui.View) error {
}
}
jobRequiresAuth.Entity.SetState(git.Queued)
+
// add this job to the last of the queue
- err = gui.State.Queue.AddJob(jobRequiresAuth)
- if err != nil {
+ if err := gui.State.Queue.AddJob(jobRequiresAuth); err != nil {
return err
}
- gui.closeAuthenticationView(g, v)
- v_return, err := g.View(authenticationReturnView)
- gui.startQueue(g, v_return)
- return nil
+
+ if err := gui.closeAuthenticationView(g, v); err != nil {
+ return err // should return??
+ }
+
+ vReturn, err := g.View(authenticationReturnView)
+ if err != nil {
+ return err // should return??
+ }
+
+ return gui.startQueue(g, vReturn)
}
// open an error view to inform user with a message and a useful note
diff --git a/pkg/gui/commitview.go b/pkg/gui/commitview.go
index 0810621..3359037 100644
--- a/pkg/gui/commitview.go
+++ b/pkg/gui/commitview.go
@@ -27,13 +27,13 @@ var (
func (gui *Gui) openCommitMessageView(g *gocui.Gui, v *gocui.View) error {
maxX, maxY := g.Size()
commitMesageReturnView = v.Name()
- v_frame, err := g.SetView(commitFrameViewFeature.Name, maxX/2-30, maxY/2-4, maxX/2+30, maxY/2+3)
+ vFrame, err := g.SetView(commitFrameViewFeature.Name, maxX/2-30, maxY/2-4, maxX/2+30, maxY/2+3)
if err != nil {
if err != gocui.ErrUnknownView {
return err
}
- v_frame.Frame = true
- fmt.Fprintln(v_frame, " Enter your commit message:")
+ vFrame.Frame = true
+ fmt.Fprintln(vFrame, " Enter your commit message:")
}
v, err = g.SetView(commitMessageViewFeature.Name, maxX/2-29, maxY/2-3, maxX/2+29, maxY/2)
if err != nil {
@@ -124,19 +124,33 @@ func (gui *Gui) openCommitUserEmailView(g *gocui.Gui) error {
// close the opened commite mesage view
func (gui *Gui) submitCommitMessageView(g *gocui.Gui, v *gocui.View) error {
e := gui.getSelectedRepository()
+
// in order to read buffer of the views, first we need to find'em
- v_msg, err := g.View(commitMessageViewFeature.Name)
- v_name, err := g.View(commitUserUserViewFeature.Name)
- v_email, err := g.View(commitUserEmailViewFeature.Name)
+ vMsg, err := g.View(commitMessageViewFeature.Name)
+ if err != nil {
+ return err // should return??
+ }
+
+ vName, err := g.View(commitUserUserViewFeature.Name)
+ if err != nil {
+ return err // should return??
+ }
+
+ vEmail, err := g.View(commitUserEmailViewFeature.Name)
+ if err != nil {
+ return err // should return??
+ }
+
// the return string of the views contain trailing new lines
re := regexp.MustCompile(`\r?\n`)
// TODO: maybe intentionally added new lines?
- msg := re.ReplaceAllString(v_msg.ViewBuffer(), "")
- name := re.ReplaceAllString(v_name.ViewBuffer(), "")
- email := re.ReplaceAllString(v_email.ViewBuffer(), "")
+ msg := re.ReplaceAllString(vMsg.ViewBuffer(), "")
+ name := re.ReplaceAllString(vName.ViewBuffer(), "")
+ email := re.ReplaceAllString(vEmail.ViewBuffer(), "")
if len(email) <= 0 {
return errors.New("User email needs to be provided")
}
+
err = git.CommitCommand(e, git.CommitOptions{
CommitMsg: msg,
User: name,
@@ -145,6 +159,7 @@ func (gui *Gui) submitCommitMessageView(g *gocui.Gui, v *gocui.View) error {
if err != nil {
return err
}
+
return gui.closeCommitMessageView(g, v)
}
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index c839860..607c6f8 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -100,8 +100,8 @@ func (gui *Gui) Run() error {
if err != nil {
return err
}
-
defer g.Close()
+
gui.g = g
g.Highlight = true
g.SelFgColor = gocui.ColorGreen
@@ -213,14 +213,12 @@ func (gui *Gui) layout(g *gocui.Gui) error {
// focus to next view
func (gui *Gui) nextMainView(g *gocui.Gui, v *gocui.View) error {
- err := gui.nextViewOfGroup(g, v, mainViews)
- return err
+ return gui.nextViewOfGroup(g, v, mainViews)
}
// focus to previous view
func (gui *Gui) previousMainView(g *gocui.Gui, v *gocui.View) error {
- err := gui.previousViewOfGroup(g, v, mainViews)
- return err
+ return gui.previousViewOfGroup(g, v, mainViews)
}
// quit from the gui and end its loop
diff --git a/pkg/gui/mainview.go b/pkg/gui/mainview.go
index 4661f43..d07a742 100644
--- a/pkg/gui/mainview.go
+++ b/pkg/gui/mainview.go
@@ -17,20 +17,18 @@ func (gui *Gui) fillMain(g *gocui.Gui) error {
if err != nil {
return err
}
+
// if there is still a loading screen we better get rid of it
- err = g.DeleteView(loadingViewFeature.Name)
- if err != nil {
+ if err := g.DeleteView(loadingViewFeature.Name); err != nil {
return err
}
- if _, err = gui.setCurrentViewOnTop(g, mainViewFeature.Name); err != nil {
+ if _, err := gui.setCurrentViewOnTop(g, mainViewFeature.Name); err != nil {
return err
}
+
// Sort by name is default behavior as expected, so it handles initial
// rendering of the main view
- if err = gui.sortByName(g, v); err != nil {
- return err
- }
- return nil
+ return gui.sortByName(g, v)
})
return nil
}
diff --git a/pkg/gui/sideviews.go b/pkg/gui/sideviews.go
index a602b2e..fcd7f13 100644
--- a/pkg/gui/sideviews.go
+++ b/pkg/gui/sideviews.go
@@ -17,20 +17,20 @@ func (gui *Gui) renderSideViews(e *git.RepoEntity) error {
if e == nil {
return nil
}
- var err error
- if err = gui.renderRemotes(e); err != nil {
+
+ if err := gui.renderRemotes(e); err != nil {
return err
}
- if err = gui.renderBranch(e); err != nil {
+ if err := gui.renderBranch(e); err != nil {
return err
}
- if err = gui.renderRemoteBranches(e); err != nil {
+ if err := gui.renderRemoteBranches(e); err != nil {
return err
}
- if err = gui.renderCommits(e); err != nil {
+ if err := gui.renderCommits(e); err != nil {
return err
}
- return err
+ return nil
}
// updates the remotesview for given entity
@@ -104,8 +104,8 @@ func (gui *Gui) renderBranch(e *git.RepoEntity) error {
}
fmt.Fprintln(out, tab+b.Name)
}
- err = gui.smartAnchorRelativeToLine(out, currentindex, totalbranches)
- return err
+
+ return gui.smartAnchorRelativeToLine(out, currentindex, totalbranches)
}
// updates the commitsview for given entity
@@ -126,10 +126,7 @@ func (gui *Gui) renderCommits(e *git.RepoEntity) error {
}
fmt.Fprintln(out, tab+commitLabel(c))
}
- if err = gui.smartAnchorRelativeToLine(out, currentindex, totalcommits); err != nil {
- return err
- }
- return err
+ return gui.smartAnchorRelativeToLine(out, currentindex, totalcommits)
}
// cursor down variant for sideviews
diff --git a/pkg/gui/stashview.go b/pkg/gui/stashview.go
index 81de8f0..0afc983 100644
--- a/pkg/gui/stashview.go
+++ b/pkg/gui/stashview.go
@@ -56,10 +56,11 @@ func (gui *Gui) popStash(g *gocui.Gui, v *gocui.View) error {
}
}
// since the pop is a func of stashed item, we need to refresh entity here
- e.Refresh()
+ if err := e.Refresh(); err != nil {
+ return err
+ }
- err = refreshAllStatusView(g, e, true)
- return err
+ return refreshAllStatusView(g, e, true)
}
// refresh the main view and re-render the repository representations
diff --git a/pkg/gui/statusview.go b/pkg/gui/statusview.go
index cc6ef51..b66d49f 100644
--- a/pkg/gui/statusview.go
+++ b/pkg/gui/statusview.go
@@ -32,65 +32,61 @@ func (gui *Gui) openStatusView(g *gocui.Gui, v *gocui.View) error {
return nil
}
-func reloadFiles(e *git.RepoEntity) (err error) {
- stagedFiles, unstagedFiles, err = populateFileLists(e)
+func reloadFiles(e *git.RepoEntity) error {
+ _, _, err := populateFileLists(e)
return err
}
// focus to next view
func (gui *Gui) nextStatusView(g *gocui.Gui, v *gocui.View) error {
- err := gui.nextViewOfGroup(g, v, statusViews)
- return err
+ return gui.nextViewOfGroup(g, v, statusViews)
}
// focus to previous view
func (gui *Gui) previousStatusView(g *gocui.Gui, v *gocui.View) error {
- err := gui.previousViewOfGroup(g, v, statusViews)
- return err
+ return gui.previousViewOfGroup(g, v, statusViews)
}
// moves the cursor downwards for the main view and if it goes to bottom it
// prevents from going further
func (gui *Gui) statusCursorDown(g *gocui.Gui, v *gocui.View) error {
- if v != nil {
- cx, cy := v.Cursor()
- ox, oy := v.Origin()
- ly := len(v.BufferLines()) - 2 // why magic number? have no idea
+ if v == nil {
+ return nil
+ }
- // if we are at the end we just return
- if cy+oy == ly {
- return nil
- }
- if err := v.SetCursor(cx, cy+1); err != nil {
+ cx, cy := v.Cursor()
+ ox, oy := v.Origin()
+ ly := len(v.BufferLines()) - 2 // why magic number? have no idea
- if err := v.SetOrigin(ox, oy+1); err != nil {
- return err
- }
- }
- e := gui.getSelectedRepository()
- if err := refreshStatusView(v.Name(), g, e, false); err != nil {
+ // if we are at the end we just return
+ if cy+oy == ly {
+ return nil
+ }
+ if err := v.SetCursor(cx, cy+1); err != nil {
+
+ if err := v.SetOrigin(ox, oy+1); err != nil {
return err
}
}
- return nil
+ e := gui.getSelectedRepository()
+ return refreshStatusView(v.Name(), g, e, false)
}
// moves the cursor upwards for the main view
func (gui *Gui) statusCursorUp(g *gocui.Gui, v *gocui.View) error {
- if v != nil {
- ox, oy := v.Origin()
- cx, cy := v.Cursor()
- if err := v.SetCursor(cx, cy-1); err != nil && oy > 0 {
- if err := v.SetOrigin(ox, oy-1); err != nil {
- return err
- }
- }
- e := gui.getSelectedRepository()
- if err := refreshStatusView(v.Name(), g, e, false); err != nil {
+ if v == nil {
+ return nil
+ }
+
+ ox, oy := v.Origin()
+ cx, cy := v.Cursor()
+ if err := v.SetCursor(cx, cy-1); err != nil && oy > 0 {
+ if err := v.SetOrigin(ox, oy-1); err != nil {
return err
}
}
- return nil
+ e := gui.getSelectedRepository()
+ return refreshStatusView(v.Name(), g, e, false)
}
// header og the status layout
@@ -146,21 +142,16 @@ func refreshStatusView(viewName string, g *gocui.Gui, e *git.RepoEntity, reload
if reload {
reloadFiles(e)
}
+ var err error
switch viewName {
case stageViewFeature.Name:
- if err := refreshStagedView(g); err != nil {
- return err
- }
+ err = refreshStagedView(g)
case unstageViewFeature.Name:
- if err := refreshUnstagedView(g); err != nil {
- return err
- }
+ err = refreshUnstagedView(g)
case stashViewFeature.Name:
- if err := refreshStashView(g, e); err != nil {
- return err
- }
+ err = refreshStashView(g, e)
}
- return nil
+ return err
}
func refreshAllStatusView(g *gocui.Gui, e *git.RepoEntity, reload bool) error {
diff --git a/pkg/gui/unstagedview.go b/pkg/gui/unstagedview.go
index dd2fe6d..8d152c9 100644
--- a/pkg/gui/unstagedview.go
+++ b/pkg/gui/unstagedview.go
@@ -18,8 +18,8 @@ func (gui *Gui) openUnStagedView(g *gocui.Gui) error {
}
v.Title = unstageViewFeature.Title
}
- err = refreshUnstagedView(g)
- return err
+
+ return refreshUnstagedView(g)
}
func (gui *Gui) addChanges(g *gocui.Gui, v *gocui.View) error {
@@ -33,8 +33,8 @@ func (gui *Gui) addChanges(g *gocui.Gui, v *gocui.View) error {
if err := git.Add(e, unstagedFiles[cy+oy], git.AddOptions{}); err != nil {
return err
}
- err := refreshAllStatusView(g, e, true)
- return err
+
+ return refreshAllStatusView(g, e, true)
}
func (gui *Gui) addAllChanges(g *gocui.Gui, v *gocui.View) error {
@@ -42,8 +42,8 @@ func (gui *Gui) addAllChanges(g *gocui.Gui, v *gocui.View) error {
if err := git.AddAll(e, git.AddOptions{}); err != nil {
return err
}
- err := refreshAllStatusView(g, e, true)
- return err
+
+ return refreshAllStatusView(g, e, true)
}
// refresh the main view and re-render the repository representations
diff --git a/pkg/gui/util-common.go b/pkg/gui/util-common.go
index 3f6be1a..92c49b9 100644
--- a/pkg/gui/util-common.go
+++ b/pkg/gui/util-common.go
@@ -28,8 +28,8 @@ func (gui *Gui) nextViewOfGroup(g *gocui.Gui, v *gocui.View, group []viewFeature
}).Warn("View cannot be focused.")
return nil
}
- gui.updateKeyBindingsView(g, focusedViewName)
- return nil
+
+ return gui.updateKeyBindingsView(g, focusedViewName)
}
// focus to previous view
@@ -54,29 +54,26 @@ func (gui *Gui) previousViewOfGroup(g *gocui.Gui, v *gocui.View, group []viewFea
}).Warn("View cannot be focused.")
return nil
}
- gui.updateKeyBindingsView(g, focusedViewName)
- return nil
+
+ return gui.updateKeyBindingsView(g, focusedViewName)
}
// siwtch the app's mode to fetch
func (gui *Gui) switchToFetchMode(g *gocui.Gui, v *gocui.View) error {
gui.State.Mode = fetchMode
- gui.updateKeyBindingsView(g, mainViewFeature.Name)
- return nil
+ return gui.updateKeyBindingsView(g, mainViewFeature.Name)
}
// siwtch the app's mode to pull
func (gui *Gui) switchToPullMode(g *gocui.Gui, v *gocui.View) error {
gui.State.Mode = pullMode
- gui.updateKeyBindingsView(g, mainViewFeature.Name)
- return nil
+ return gui.updateKeyBindingsView(g, mainViewFeature.Name)
}
// siwtch the app's mode to merge
func (gui *Gui) switchToMergeMode(g *gocui.Gui, v *gocui.View) error {
gui.State.Mode = mergeMode
- gui.updateKeyBindingsView(g, mainViewFeature.Name)
- return nil
+ return gui.updateKeyBindingsView(g, mainViewFeature.Name)
}
// bring the view on the top by its name
diff --git a/pkg/gui/util-textstyle.go b/pkg/gui/util-textstyle.go
index fbe2b64..95c8de7 100644
--- a/pkg/gui/util-textstyle.go
+++ b/pkg/gui/util-textstyle.go
@@ -51,10 +51,8 @@ var (
// this function handles the render and representation of the repository
// TODO: cleanup is required, right now it looks too complicated
func (gui *Gui) repositoryLabel(e *git.RepoEntity) string {
- suffix := ""
- prefix := ""
- repoName := ""
+ var prefix string
if e.Branch.Pushables != "?" {
prefix = prefix + pushable + ws + e.Branch.Pushables +
ws + pullable + ws + e.Branch.Pullables
@@ -63,6 +61,7 @@ func (gui *Gui) repositoryLabel(e *git.RepoEntity) string {
ws + pullable + ws + yellow.Sprint(e.Branch.Pullables)
}
+ var repoName string
se := gui.getSelectedRepository()
if se == e {
prefix = prefix + selectionIndicator
@@ -82,6 +81,7 @@ func (gui *Gui) repositoryLabel(e *git.RepoEntity) string {
prefix = prefix + ws
}
+ var suffix string
// rendering the satus according to repository's state
if e.State() == git.Queued {
if inQueue, ty := gui.State.Queue.IsInTheQueue(e); inQueue {
@@ -127,10 +127,9 @@ func commitLabel(c *git.Commit) string {
}
// limit the text length for visual concerns
-func adjustTextLength(text string, maxLength int) (adjusted string) {
+func adjustTextLength(text string, maxLength int) string {
if len(text) > maxLength {
- adjusted := text[:maxLength-2] + ".."
- return adjusted
+ return text[:maxLength-2] + ".."
}
return text
}
diff --git a/pkg/helpers/utils_test.go b/pkg/helpers/utils_test.go
index 4b48d3c..a6a56a4 100644
--- a/pkg/helpers/utils_test.go
+++ b/pkg/helpers/utils_test.go
@@ -3,8 +3,9 @@ package helpers
import "testing"
func TestRandomString(t *testing.T) {
- var rand_string = RandomString(8)
- if len(rand_string) != 8 {
+ stringLength := 8
+ randString := RandomString(stringLength)
+ if len(randString) != stringLength {
t.Errorf("The length of the string should be equal.")
}
}