From 6ea0ec6165874f2176d3ebd8b0f67151d92be249 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Tue, 24 May 2022 13:30:50 -0400 Subject: [PATCH] fix: no reference nil deref error --- go.mod | 2 +- go.sum | 2 ++ ui/pages/repo/files.go | 3 +++ ui/pages/repo/log.go | 6 ++++++ ui/pages/repo/refs.go | 7 ++++++- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 4178ffd278982e77ffeffb5c7be54a9167ad091a..678babb8b8975f10ce6543f23de2b65526859eed 100755 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.17 require ( github.com/alecthomas/chroma v0.10.0 github.com/caarlos0/env/v6 v6.9.1 - github.com/charmbracelet/bubbles v0.10.4-0.20220429162018-2a8d463bd11f + github.com/charmbracelet/bubbles v0.10.4-0.20220524120539-e1871db6d35e github.com/charmbracelet/bubbletea v0.20.0 github.com/charmbracelet/glamour v0.4.0 github.com/charmbracelet/lipgloss v0.4.0 diff --git a/go.sum b/go.sum index fbfa30d392163a61a55b37dec0a01e70af8fa171..1a86d856303c73a8dd790b997bc599cdb8dd3335 100644 --- a/go.sum +++ b/go.sum @@ -27,6 +27,8 @@ github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 h1:w2ANoiT4ubm github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA= github.com/charmbracelet/bubbles v0.10.4-0.20220429162018-2a8d463bd11f h1:5mbyuBNzjF1S1pJOGubmjMBNUVO3NmjNsaZPIsFwPUQ= github.com/charmbracelet/bubbles v0.10.4-0.20220429162018-2a8d463bd11f/go.mod h1:jOA+DUF1rjZm7gZHcNyIVW+YrBPALKfpGVdJu8UiJsA= +github.com/charmbracelet/bubbles v0.10.4-0.20220524120539-e1871db6d35e h1:B+COqRjrl6G/X6v7salT4LDoSl+2Kz3g4OuDaoZCMwA= +github.com/charmbracelet/bubbles v0.10.4-0.20220524120539-e1871db6d35e/go.mod h1:jOA+DUF1rjZm7gZHcNyIVW+YrBPALKfpGVdJu8UiJsA= github.com/charmbracelet/bubbletea v0.19.3/go.mod h1:VuXF2pToRxDUHcBUcPmCRUHRvFATM4Ckb/ql1rBl3KA= github.com/charmbracelet/bubbletea v0.20.0 h1:/b8LEPgCbNr7WWZ2LuE/BV1/r4t5PyYJtDb+J3vpwxc= github.com/charmbracelet/bubbletea v0.20.0/go.mod h1:zpkze1Rioo4rJELjRyGlm9T2YNou1Fm4LIJQSa5QMEM= diff --git a/ui/pages/repo/files.go b/ui/pages/repo/files.go index 183fbc8890c8e7d5b4890e7329308d8adf2d4ebe..c2e08c0098f7eec84f61d38ab975ac2449d1dee0 100644 --- a/ui/pages/repo/files.go +++ b/ui/pages/repo/files.go @@ -318,6 +318,9 @@ func (f *Files) StatusBarInfo() string { func (f *Files) updateFilesCmd() tea.Msg { files := make([]selector.IdentifiableItem, 0) dirs := make([]selector.IdentifiableItem, 0) + if f.ref == nil { + return common.ErrorMsg(errNoRef) + } t, err := f.repo.Tree(f.ref, f.path) if err != nil { return common.ErrorMsg(err) diff --git a/ui/pages/repo/log.go b/ui/pages/repo/log.go index 7611bff20fd4322eb8eed509d83ff013ab9eee0c..b7277eb85ea27518393ec106dd3a4156c901c60e 100644 --- a/ui/pages/repo/log.go +++ b/ui/pages/repo/log.go @@ -302,6 +302,9 @@ func (l *Log) StatusBarInfo() string { } func (l *Log) countCommitsCmd() tea.Msg { + if l.ref == nil { + return common.ErrorMsg(errNoRef) + } count, err := l.repo.CountCommits(l.ref) if err != nil { return common.ErrorMsg(err) @@ -319,6 +322,9 @@ func (l *Log) updateCommitsCmd() tea.Msg { count = int64(msg) } } + if l.ref == nil { + return common.ErrorMsg(errNoRef) + } items := make([]selector.IdentifiableItem, count) page := l.nextPage limit := l.selector.PerPage() diff --git a/ui/pages/repo/refs.go b/ui/pages/repo/refs.go index 98160ffd7a49d003aa9d33fff4f99bd7a56570ab..dec58de0e8d1881c842cbca7d4221f4ca86ae443 100644 --- a/ui/pages/repo/refs.go +++ b/ui/pages/repo/refs.go @@ -1,6 +1,7 @@ package repo import ( + "errors" "fmt" "sort" "strings" @@ -14,6 +15,10 @@ import ( "github.com/charmbracelet/soft-serve/ui/git" ) +var ( + errNoRef = errors.New("no reference specified") +) + // RefItemsMsg is a message that contains a list of RefItem. type RefItemsMsg struct { prefix string @@ -146,7 +151,7 @@ func (r *Refs) View() string { return r.selector.View() } -// StausBarValue implements statusbar.StatusBar. +// StatusBarValue implements statusbar.StatusBar. func (r *Refs) StatusBarValue() string { if r.activeRef == nil { return ""