use readstring instead of bufio to copy behavior of tailinglibrary without token limitation

Tai Groot created

Change summary

cmd/logs.go | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

Detailed changes

cmd/logs.go 🔗

@@ -4,9 +4,11 @@ import (
 	"bufio"
 	"encoding/json"
 	"fmt"
+	"io"
 	"os"
 	"path/filepath"
 	"slices"
+	"strings"
 	"time"
 
 	"github.com/charmbracelet/crush/internal/config"
@@ -64,13 +66,19 @@ var logsCmd = &cobra.Command{
 			}
 			defer file.Close()
 
-			scanner := bufio.NewScanner(file)
-			for scanner.Scan() {
-				printLogLine(scanner.Text())
-			}
-
-			if err := scanner.Err(); err != nil {
-				return fmt.Errorf("failed to read log file: %v", err)
+			reader := bufio.NewReader(file)
+			for {
+				line, err := reader.ReadString('\n')
+				if err != nil {
+					if err == io.EOF && line != "" {
+						// Handle last line without newline
+						printLogLine(line)
+					}
+					break
+				}
+				// Remove trailing newline
+				line = strings.TrimSuffix(line, "\n")
+				printLogLine(line)
 			}
 		}