Fix 32-bit build, add 386 to CI, log scan completion

This commit is contained in:
Andy Dixon
2026-10-02 08:33:47 +01:00
parent b771a57bc4
commit 6bb8ddc0f7
4 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -25,6 +25,6 @@ jobs:
- name: cross-build - name: cross-build
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: | run: |
for t in linux/arm64 darwin/arm64 windows/amd64 freebsd/amd64; do for t in linux/arm64 linux/386 darwin/arm64 windows/amd64 freebsd/amd64; do
GOOS=${t%/*} GOARCH=${t#*/} CGO_ENABLED=0 go build -o /dev/null ./cmd/mapsize GOOS=${t%/*} GOARCH=${t#*/} CGO_ENABLED=0 go build -o /dev/null ./cmd/mapsize
done done
+2
View File
@@ -11,6 +11,7 @@ import (
"context" "context"
"errors" "errors"
"fmt" "fmt"
"log/slog"
"os" "os"
"path/filepath" "path/filepath"
"runtime" "runtime"
@@ -358,6 +359,7 @@ func (c *controller) apply(r *result, cancelled bool) bool {
dn.Flags |= inventory.FlagIncomplete dn.Flags |= inventory.FlagIncomplete
t.Stats.Unscanned++ t.Stats.Unscanned++
default: default:
slog.Debug("read directory failed", "path", j.path, "err", r.err)
dn.Flags |= inventory.FlagError | inventory.FlagIncomplete dn.Flags |= inventory.FlagError | inventory.FlagIncomplete
t.Stats.AddError(inventory.ErrorRecord{Node: dir, Kind: inventory.Classify(r.err), Msg: errMsg(r.err)}) t.Stats.AddError(inventory.ErrorRecord{Node: dir, Kind: inventory.Classify(r.err), Msg: errMsg(r.err)})
d.Errors++ d.Errors++
+5 -2
View File
@@ -1,6 +1,9 @@
package tui package tui
import "sync" import (
"math"
"sync"
)
// The stock 256-colour conversion maps dark, slightly tinted colours to // The stock 256-colour conversion maps dark, slightly tinted colours to
// saturated cube entries (olive, navy), which wrecks the subtle shading the // saturated cube entries (olive, navy), which wrecks the subtle shading the
@@ -24,7 +27,7 @@ func quant256(c Color) uint8 {
return v.(uint8) return v.(uint8)
} }
r, g, b := int(c>>16&0xff), int(c>>8&0xff), int(c&0xff) r, g, b := int(c>>16&0xff), int(c>>8&0xff), int(c&0xff)
best, bestD := 16, 1<<62 best, bestD := 16, math.MaxInt
for i := 0; i < 216; i++ { for i := 0; i < 216; i++ {
cr, cg, cb := cubeLevels[i/36], cubeLevels[i/6%6], cubeLevels[i%6] cr, cg, cb := cubeLevels[i/36], cubeLevels[i/6%6], cubeLevels[i%6]
if d := redmean(r, g, b, cr, cg, cb); d < bestD { if d := redmean(r, g, b, cr, cg, cb); d < bestD {
+3
View File
@@ -10,6 +10,7 @@ package tui
import ( import (
"context" "context"
"fmt" "fmt"
"log/slog"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@@ -324,6 +325,8 @@ func (m *Model) scanFinished() tea.Cmd {
errs := st.TotalErrors() errs := st.TotalErrors()
el := st.Elapsed() el := st.Elapsed()
t.RUnlock() t.RUnlock()
slog.Info("scan finished", "files", files, "dirs", st.Dirs, "bytes", total, "errors", errs,
"cancelled", st.Cancelled, "elapsed", el)
var cmds []tea.Cmd var cmds []tea.Cmd
rate := float64(files+st.Dirs) / max(el.Seconds(), 0.001) rate := float64(files+st.Dirs) / max(el.Seconds(), 0.001)
msg := fmt.Sprintf("✓ Scan complete %s · %s files · %s dirs · %s · %s/s", msg := fmt.Sprintf("✓ Scan complete %s · %s files · %s dirs · %s · %s/s",