diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-06-08 14:19:11 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-06-08 14:58:24 +0900 |
| commit | f869ff95a12756de97827b4afd93763f9661f144 (patch) | |
| tree | 6f5445ae623f44ceb99c8f7ddb5bb4cd1fb04aa0 /internal/pkg | |
| parent | 725f2e0ef3eaba1ad46b597604a684125ab93911 (diff) | |
all: apply modernisers
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg')
| -rw-r--r-- | internal/pkg/pkg.go | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/internal/pkg/pkg.go b/internal/pkg/pkg.go index e90bb72c..7b4c9637 100644 --- a/internal/pkg/pkg.go +++ b/internal/pkg/pkg.go @@ -238,8 +238,8 @@ func (t *TContext) destroy(errP *error) { if chmodErr != nil || removeErr != nil { *errP = errors.Join(*errP, chmodErr, removeErr) } else if errors.Is(*errP, os.ErrExist) { - var linkError *os.LinkError - if errors.As(*errP, &linkError) && linkError != nil && + if linkError, ok := errors.AsType[*os.LinkError](*errP); ok && + linkError != nil && linkError.Op == "rename" { // two artifacts may be backed by the same file *errP = nil @@ -974,36 +974,42 @@ func (e *ScrubError) Unwrap() []error { // Error returns a multi-line representation of [ScrubError]. func (e *ScrubError) Error() string { var segments []string + var buf strings.Builder + if len(e.ChecksumMismatches) > 0 { - s := "checksum mismatches:\n" + buf.Reset() + buf.WriteString("checksum mismatches:\n") for _, m := range e.ChecksumMismatches { - s += m.Error() + "\n" + buf.WriteString(m.Error() + "\n") } - segments = append(segments, s) + segments = append(segments, buf.String()) } if len(e.DanglingIdentifiers) > 0 { - s := "dangling identifiers:\n" + buf.Reset() + buf.WriteString("dangling identifiers:\n") for _, id := range e.DanglingIdentifiers { - s += Encode(id) + "\n" + buf.WriteString(Encode(id) + "\n") } - segments = append(segments, s) + segments = append(segments, buf.String()) } if len(e.DanglingStatus) > 0 { - s := "dangling status:\n" + buf.Reset() + buf.WriteString("dangling status:\n") for _, id := range e.DanglingStatus { - s += Encode(id) + "\n" + buf.WriteString(Encode(id) + "\n") } - segments = append(segments, s) + segments = append(segments, buf.String()) } if len(e.Errs) > 0 { - s := "errors during scrub:\n" + buf.Reset() + buf.WriteString("errors during scrub:\n") for pathname, errs := range e.errs { - s += " " + pathname.Value() + ":\n" + buf.WriteString(" " + pathname.Value() + ":\n") for _, err := range errs { - s += " " + err.Error() + "\n" + buf.WriteString(" " + err.Error() + "\n") } } - segments = append(segments, s) + segments = append(segments, buf.String()) } return strings.Join(segments, "\n") } |
