f819896ed2822c300cdbac9013a9d276f0039fb1

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

feat(log): initialize debug logger

Diff

  1diff --git a/cmd/soft/root.go b/cmd/soft/root.go
  2index e8317dd88eeede4ff6e156c731a7f562e2b08cc3..1f4cbeacdff6e3eb2c343f4048b79f1358eb8983 100644
  3--- a/cmd/soft/root.go
  4+++ b/cmd/soft/root.go
  5@@ -4,6 +4,7 @@ import (
  6 	"runtime/debug"
  7 
  8 	"github.com/charmbracelet/log"
  9+	_ "github.com/charmbracelet/soft-serve/log"
 10 	"github.com/spf13/cobra"
 11 )
 12 
 13diff --git a/cmd/soft/serve.go b/cmd/soft/serve.go
 14index 469ba8546db82fdff95896d7a7c36e593c1b7ead..332796394866e8b1fe6275985ccf771a589aa467 100644
 15--- a/cmd/soft/serve.go
 16+++ b/cmd/soft/serve.go
 17@@ -7,7 +7,6 @@ import (
 18 	"syscall"
 19 	"time"
 20 
 21-	"github.com/charmbracelet/log"
 22 	"github.com/charmbracelet/soft-serve/server"
 23 	"github.com/charmbracelet/soft-serve/server/config"
 24 	"github.com/spf13/cobra"
 25@@ -26,10 +25,6 @@ var (
 26 				return err
 27 			}
 28 
 29-			if cfg.Debug {
 30-				log.SetLevel(log.DebugLevel)
 31-			}
 32-
 33 			done := make(chan os.Signal, 1)
 34 			lch := make(chan error, 1)
 35 			go func() {
 36diff --git a/server/config/config.go b/server/config/config.go
 37index 14dcff657128d87749f1ea4d3df56049eeb6525b..a7bc67f9c1aee4d7047ba77c707885878dafac9c 100644
 38--- a/server/config/config.go
 39+++ b/server/config/config.go
 40@@ -51,9 +51,6 @@ type Config struct {
 41 	// DataPath is the path to the directory where Soft Serve will store its data.
 42 	DataPath string `env:"DATA_PATH" envDefault:"data"`
 43 
 44-	// Debug enables debug logging.
 45-	Debug bool `env:"DEBUG" envDefault:"false"`
 46-
 47 	// Backend is the Git backend to use.
 48 	Backend backend.Backend
 49 
 50@@ -70,9 +67,6 @@ func DefaultConfig() *Config {
 51 	}); err != nil {
 52 		log.Fatal(err)
 53 	}
 54-	if cfg.Debug {
 55-		log.SetLevel(log.DebugLevel)
 56-	}
 57 	fb, err := file.NewFileBackend(cfg.DataPath)
 58 	if err != nil {
 59 		log.Fatal(err)
 60diff --git a/server/ssh.go b/server/ssh.go
 61index 1c73928255e1ef19c9f9b70b87438669d5ef4a20..5a1752a4fbe92747787e224666070da295ed9df7 100644
 62--- a/server/ssh.go
 63+++ b/server/ssh.go
 64@@ -40,6 +40,7 @@ func NewSSHServer(cfg *config.Config) (*SSHServer, error) {
 65 			cm.Middleware(cfg),
 66 			// Git middleware.
 67 			s.Middleware(cfg),
 68+			// Logging middleware.
 69 			lm.MiddlewareWithLogger(logger),
 70 		),
 71 	}
 72@@ -66,9 +67,7 @@ func NewSSHServer(cfg *config.Config) (*SSHServer, error) {
 73 
 74 // PublicKeyAuthHandler handles public key authentication.
 75 func (s *SSHServer) PublicKeyHandler(ctx ssh.Context, pk ssh.PublicKey) bool {
 76-	al := s.cfg.Access.AccessLevel("", pk)
 77-	logger.Debug("publickey handler", "level", al)
 78-	return al > backend.NoAccess
 79+	return s.cfg.Access.AccessLevel("", pk) > backend.NoAccess
 80 }
 81 
 82 // KeyboardInteractiveHandler handles keyboard interactive authentication.
 83diff --git a/ui/pages/repo/log.go b/ui/pages/repo/log.go
 84index 23bc2388060ccc66752d155773415ff0a8a4e3ff..6b5546590a516899ddd6d8f0753940b1b63edb24 100644
 85--- a/ui/pages/repo/log.go
 86+++ b/ui/pages/repo/log.go
 87@@ -2,7 +2,6 @@ package repo
 88 
 89 import (
 90 	"fmt"
 91-	"log"
 92 	"strings"
 93 	"time"
 94 
 95@@ -386,7 +385,7 @@ func (l *Log) StatusBarInfo() string {
 96 
 97 func (l *Log) countCommitsCmd() tea.Msg {
 98 	if l.ref == nil {
 99-		log.Printf("ui: log: ref is nil")
100+		logger.Debugf("ui: log: ref is nil")
101 		return common.ErrorMsg(errNoRef)
102 	}
103 	r, err := l.repo.Repository()
104@@ -395,7 +394,7 @@ func (l *Log) countCommitsCmd() tea.Msg {
105 	}
106 	count, err := r.CountCommits(l.ref)
107 	if err != nil {
108-		log.Printf("ui: error counting commits: %v", err)
109+		logger.Debugf("ui: error counting commits: %v", err)
110 		return common.ErrorMsg(err)
111 	}
112 	return LogCountMsg(count)
113@@ -412,7 +411,7 @@ func (l *Log) updateCommitsCmd() tea.Msg {
114 		}
115 	}
116 	if l.ref == nil {
117-		log.Printf("ui: log: ref is nil")
118+		logger.Debugf("ui: log: ref is nil")
119 		return common.ErrorMsg(errNoRef)
120 	}
121 	items := make([]selector.IdentifiableItem, count)
122@@ -426,7 +425,7 @@ func (l *Log) updateCommitsCmd() tea.Msg {
123 	// CommitsByPage pages start at 1
124 	cc, err := r.CommitsByPage(l.ref, page+1, limit)
125 	if err != nil {
126-		log.Printf("ui: error loading commits: %v", err)
127+		logger.Debugf("ui: error loading commits: %v", err)
128 		return common.ErrorMsg(err)
129 	}
130 	for i, c := range cc {
131@@ -448,12 +447,12 @@ func (l *Log) selectCommitCmd(commit *git.Commit) tea.Cmd {
132 func (l *Log) loadDiffCmd() tea.Msg {
133 	r, err := l.repo.Repository()
134 	if err != nil {
135-		log.Printf("ui: error loading diff repository: %v", err)
136+		logger.Debugf("ui: error loading diff repository: %v", err)
137 		return common.ErrorMsg(err)
138 	}
139 	diff, err := r.Diff(l.selectedCommit)
140 	if err != nil {
141-		log.Printf("ui: error loading diff: %v", err)
142+		logger.Debugf("ui: error loading diff: %v", err)
143 		return common.ErrorMsg(err)
144 	}
145 	return LogDiffMsg(diff)
146diff --git a/ui/pages/repo/refs.go b/ui/pages/repo/refs.go
147index b0af0defeb94355d3f9314fb65cc4fba2e53c9a6..aa4e81f943f0b156bee372f000147e7bc811491f 100644
148--- a/ui/pages/repo/refs.go
149+++ b/ui/pages/repo/refs.go
150@@ -3,7 +3,6 @@ package repo
151 import (
152 	"errors"
153 	"fmt"
154-	"log"
155 	"sort"
156 	"strings"
157 
158@@ -182,7 +181,7 @@ func (r *Refs) updateItemsCmd() tea.Msg {
159 	}
160 	refs, err := rr.References()
161 	if err != nil {
162-		log.Printf("ui: error getting references: %v", err)
163+		logger.Debugf("ui: error getting references: %v", err)
164 		return common.ErrorMsg(err)
165 	}
166 	for _, ref := range refs {
167@@ -228,10 +227,10 @@ func UpdateRefCmd(repo backend.Repository) tea.Cmd {
168 			if bs, err := r.Branches(); err != nil && len(bs) == 0 {
169 				return EmptyRepoMsg{}
170 			}
171-			log.Printf("ui: error getting HEAD reference: %v", err)
172+			logger.Debugf("ui: error getting HEAD reference: %v", err)
173 			return common.ErrorMsg(err)
174 		}
175-		log.Printf("HEAD: %s", ref.Name())
176+		logger.Debugf("HEAD: %s", ref.Name())
177 		return RefMsg(ref)
178 	}
179 }
180diff --git a/ui/pages/repo/repo.go b/ui/pages/repo/repo.go
181index 5d498b15403bd395c306d80f924f478cd2714117..16c2af44fb00434276618356071e7cf24c04a500 100644
182--- a/ui/pages/repo/repo.go
183+++ b/ui/pages/repo/repo.go
184@@ -9,6 +9,7 @@ import (
185 	"github.com/charmbracelet/bubbles/spinner"
186 	tea "github.com/charmbracelet/bubbletea"
187 	"github.com/charmbracelet/lipgloss"
188+	"github.com/charmbracelet/log"
189 	"github.com/charmbracelet/soft-serve/git"
190 	"github.com/charmbracelet/soft-serve/server/backend"
191 	"github.com/charmbracelet/soft-serve/ui/common"
192@@ -17,6 +18,10 @@ import (
193 	"github.com/charmbracelet/soft-serve/ui/components/tabs"
194 )
195 
196+var (
197+	logger = log.WithPrefix("ui.repo")
198+)
199+
200 type state int
201 
202 const (
203diff --git a/ui/pages/selection/selection.go b/ui/pages/selection/selection.go
204index 5638a743e1860d175e1687c73ae64d7c288598fa..bfd1f31f656118150815302dad0686096048a80b 100644
205--- a/ui/pages/selection/selection.go
206+++ b/ui/pages/selection/selection.go
207@@ -2,19 +2,23 @@ package selection
208 
209 import (
210 	"fmt"
211-	"log"
212 	"sort"
213 
214 	"github.com/charmbracelet/bubbles/key"
215 	"github.com/charmbracelet/bubbles/list"
216 	tea "github.com/charmbracelet/bubbletea"
217 	"github.com/charmbracelet/lipgloss"
218+	"github.com/charmbracelet/log"
219 	"github.com/charmbracelet/soft-serve/ui/common"
220 	"github.com/charmbracelet/soft-serve/ui/components/code"
221 	"github.com/charmbracelet/soft-serve/ui/components/selector"
222 	"github.com/charmbracelet/soft-serve/ui/components/tabs"
223 )
224 
225+var (
226+	logger = log.WithPrefix("ui.selection")
227+)
228+
229 type pane int
230 
231 const (
232@@ -191,7 +195,7 @@ func (s *Selection) Init() tea.Cmd {
233 	for _, r := range repos {
234 		item, err := NewItem(r, cfg)
235 		if err != nil {
236-			log.Printf("ui: failed to create item for %s: %v", r.Name(), err)
237+			logger.Debugf("ui: failed to create item for %s: %v", r.Name(), err)
238 			continue
239 		}
240 		sortedItems = append(sortedItems, item)
241diff --git a/ui/ui.go b/ui/ui.go
242index e81de69c330ec6317eb1020b4803b90920116c36..29f4cde45d7097ecf56f1beb826bb2f9fb9b9189 100644
243--- a/ui/ui.go
244+++ b/ui/ui.go
245@@ -2,12 +2,12 @@ package ui
246 
247 import (
248 	"errors"
249-	"log"
250 
251 	"github.com/charmbracelet/bubbles/key"
252 	"github.com/charmbracelet/bubbles/list"
253 	tea "github.com/charmbracelet/bubbletea"
254 	"github.com/charmbracelet/lipgloss"
255+	"github.com/charmbracelet/log"
256 	"github.com/charmbracelet/soft-serve/server/backend"
257 	"github.com/charmbracelet/soft-serve/ui/common"
258 	"github.com/charmbracelet/soft-serve/ui/components/footer"
259@@ -17,6 +17,10 @@ import (
260 	"github.com/charmbracelet/soft-serve/ui/pages/selection"
261 )
262 
263+var (
264+	logger = log.WithPrefix("ui")
265+)
266+
267 type page int
268 
269 const (
270@@ -164,7 +168,7 @@ func (ui *UI) IsFiltering() bool {
271 
272 // Update implements tea.Model.
273 func (ui *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
274-	log.Printf("msg received: %T", msg)
275+	logger.Debugf("msg received: %T", msg)
276 	cmds := make([]tea.Cmd, 0)
277 	switch msg := msg.(type) {
278 	case tea.WindowSizeMsg:
279@@ -294,7 +298,7 @@ func (ui *UI) openRepo(rn string) (backend.Repository, error) {
280 	}
281 	repos, err := cfg.Backend.Repositories()
282 	if err != nil {
283-		log.Printf("ui: failed to list repos: %v", err)
284+		logger.Debugf("ui: failed to list repos: %v", err)
285 		return nil, err
286 	}
287 	for _, r := range repos {