From c74313c19523815eeb7ef7e52d5abcd30a0833df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Sat, 7 Mar 2026 22:18:25 +0100 Subject: [PATCH] fix: resolve linting issues in roomba shell Replace unnecessary fmt.Sprintf calls with string literals, use slices.Contains instead of manual loop, and use compound assignment operator. Co-Authored-By: Claude Opus 4.6 --- internal/shell/roomba/roomba.go | 34 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/internal/shell/roomba/roomba.go b/internal/shell/roomba/roomba.go index eb1650d..f76cb62 100644 --- a/internal/shell/roomba/roomba.go +++ b/internal/shell/roomba/roomba.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + "slices" "strings" "time" @@ -216,22 +217,22 @@ func (s *roombaState) cmdHelp() commandResult { func (s *roombaState) cmdStatus() commandResult { var b strings.Builder b.WriteString("=== RoombaOS System Status ===\n") - b.WriteString(fmt.Sprintf("Model: iRobot Roomba j7+\n")) + b.WriteString("Model: iRobot Roomba j7+\n") b.WriteString(fmt.Sprintf("Status: %s\n", s.status)) b.WriteString(fmt.Sprintf("Battery: %d%%\n", s.battery)) b.WriteString(fmt.Sprintf("Dustbin: %d%% full\n", s.dustbin)) - b.WriteString(fmt.Sprintf("Side brush: OK (142 hrs)\n")) - b.WriteString(fmt.Sprintf("Main brush: OK (98 hrs)\n")) + b.WriteString("Side brush: OK (142 hrs)\n") + b.WriteString("Main brush: OK (98 hrs)\n") b.WriteString("\n") - b.WriteString(fmt.Sprintf("WiFi: Connected (SmartHome-5G)\n")) - b.WriteString(fmt.Sprintf("Signal: -38 dBm\n")) - b.WriteString(fmt.Sprintf("Alexa: Linked\n")) - b.WriteString(fmt.Sprintf("Google Home: Linked\n")) - b.WriteString(fmt.Sprintf("iRobot Home App: Connected\n")) + b.WriteString("WiFi: Connected (SmartHome-5G)\n") + b.WriteString("Signal: -38 dBm\n") + b.WriteString("Alexa: Linked\n") + b.WriteString("Google Home: Linked\n") + b.WriteString("iRobot Home App: Connected\n") b.WriteString("\n") - b.WriteString(fmt.Sprintf("Firmware: v4.3.7-stable\n")) - b.WriteString(fmt.Sprintf("LIDAR: Operational\n")) - b.WriteString(fmt.Sprintf("Clean Area Total: 12,847 sq ft (lifetime)")) + b.WriteString("Firmware: v4.3.7-stable\n") + b.WriteString("LIDAR: Operational\n") + b.WriteString("Clean Area Total: 12,847 sq ft (lifetime)") return commandResult{output: b.String()} } @@ -349,14 +350,7 @@ func (s *roombaState) scheduleList() commandResult { func (s *roombaState) scheduleAdd(day, t string) commandResult { day = capitalizeFirst(strings.ToLower(day)) validDays := []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"} - valid := false - for _, d := range validDays { - if d == day { - valid = true - break - } - } - if !valid { + if !slices.Contains(validDays, day) { return commandResult{output: fmt.Sprintf("Invalid day '%s'. Use a day of the week (e.g. Monday, Tuesday).", day)} } @@ -459,7 +453,7 @@ func formatDuration(d time.Duration) string { minutes := int(d.Minutes()) % 60 if hours >= 24 { days := hours / 24 - hours = hours % 24 + hours %= 24 return fmt.Sprintf("%dd %dh", days, hours) } if hours > 0 {