shithub: furgit

Download patch

ref: cf02f2958c191bea02126faf8daf72a7aae76bd9
parent: 2f427535c637279de022ceb5690690ff0e234b52
author: Runxi Yu <me@runxiyu.org>
date: Sun Mar 8 13:58:37 EDT 2026

*: Fix lints

--- a/format/pack/ingest/idx_write.go
+++ b/format/pack/ingest/idx_write.go
@@ -171,11 +171,16 @@
 		offsetMeter.Stop("done")
 	}
 
+	total, err := intconv.IntToUint64(largeOffsetCount)
+	if err != nil {
+		return err
+	}
+
 	largeOffsetMeter := progress.New(progress.Options{
 		Writer: state.opts.Progress,
 		Flush:  state.opts.ProgressFlush,
 		Title:  "writing index large offsets",
-		Total:  uint64(largeOffsetCount),
+		Total:  total,
 	})
 
 	var largeOffsetDone uint64
--- a/internal/progress/counters.go
+++ b/internal/progress/counters.go
@@ -1,13 +1,22 @@
 package progress
 
-import "fmt"
+import (
+	"fmt"
 
+	"codeberg.org/lindenii/furgit/internal/intconv"
+)
+
 func (meter *Meter) renderCounters() string {
 	if meter.total > 0 {
-		percent := int(meter.lastDone * 100 / meter.total)
-		meter.lastPercent = percent
+		u, err := intconv.Uint64ToInt(meter.lastDone * 100 / meter.total)
+		if err != nil {
+			return "overflow"
+			// TODO
+		}
 
-		return fmt.Sprintf("%3d%% (%d/%d)%s", percent, meter.lastDone, meter.total, meter.throughputSuffix)
+		meter.lastPercent = u
+
+		return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, meter.lastDone, meter.total, meter.throughputSuffix)
 	}
 
 	return fmt.Sprintf("%d%s", meter.lastDone, meter.throughputSuffix)
--- a/internal/progress/render.go
+++ b/internal/progress/render.go
@@ -16,16 +16,16 @@
 
 	counters := meter.renderCounters()
 
-	clear := 0
+	clear1 := 0
 	if len(counters) < meter.lastCounterW {
-		clear = meter.lastCounterW - len(counters) + 1
+		clear1 = meter.lastCounterW - len(counters) + 1
 	}
 
 	meter.lastCounterW = len(counters)
 
 	line := meter.title + ": " + counters
-	if clear > 0 {
-		line += strings.Repeat(" ", clear)
+	if clear1 > 0 {
+		line += strings.Repeat(" ", clear1)
 	}
 
 	line += eol
--- a/internal/progress/set.go
+++ b/internal/progress/set.go
@@ -1,7 +1,11 @@
 package progress
 
-import "time"
+import (
+	"time"
 
+	"codeberg.org/lindenii/furgit/internal/intconv"
+)
+
 // Set records current progress and renders when percent changed or the 1s tick
 // elapsed.
 func (meter *Meter) Set(done uint64, bytes uint64) {
@@ -19,7 +23,11 @@
 	percentChanged := false
 
 	if meter.total > 0 {
-		percent := int(done * 100 / meter.total)
+		percent, err := intconv.Uint64ToInt(done * 100 / meter.total)
+		if err != nil {
+			return // TODO
+		}
+
 		percentChanged = percent != meter.lastPercent
 	}
 
--- a/objectstore/packed/store_lookup.go
+++ b/objectstore/packed/store_lookup.go
@@ -28,7 +28,7 @@
 		return loc, nil
 	}
 
-	if store.refreshPolicy == RefreshPolicyOnMissing {
+	if store.refreshPolicy == RefreshPolicyOnMissing { //nolint:nestif
 		err = store.Refresh()
 		if err != nil {
 			return zero, err
--