Wrap errors when calling fmt.Errorf.

This commit is contained in:
miyuko
2025-09-17 13:14:42 +01:00
parent 92622b19a4
commit cf8abbca28
5 changed files with 30 additions and 30 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ func Authorize(w http.ResponseWriter, r *http.Request) error {
actualChallenges, err := net.LookupTXT(challengeHostname) actualChallenges, err := net.LookupTXT(challengeHostname)
if err != nil { if err != nil {
http.Error(w, "failed to look up DNS challenge", http.StatusUnauthorized) http.Error(w, "failed to look up DNS challenge", http.StatusUnauthorized)
return fmt.Errorf("failed to look up %s: %s", challengeHostname, err) return fmt.Errorf("failed to look up %s: %w", challengeHostname, err)
} }
expectedChallenge := fmt.Sprintf("%x", sha256.Sum256(fmt.Appendf(nil, "%s %s", host, param))) expectedChallenge := fmt.Sprintf("%x", sha256.Sum256(fmt.Appendf(nil, "%s %s", host, param)))
+16 -16
View File
@@ -72,12 +72,12 @@ func maybeCreateOpenRoot(dir string, name string) (*os.Root, error) {
dirName := filepath.Join(dir, name) dirName := filepath.Join(dir, name)
if err := os.Mkdir(dirName, 0o755); err != nil && !errors.Is(err, os.ErrExist) { if err := os.Mkdir(dirName, 0o755); err != nil && !errors.Is(err, os.ErrExist) {
return nil, fmt.Errorf("mkdir: %s", err) return nil, fmt.Errorf("mkdir: %w", err)
} }
root, err := os.OpenRoot(dirName) root, err := os.OpenRoot(dirName)
if err != nil { if err != nil {
return nil, fmt.Errorf("open: %s", err) return nil, fmt.Errorf("open: %w", err)
} }
return root, nil return root, nil
@@ -86,17 +86,17 @@ func maybeCreateOpenRoot(dir string, name string) (*os.Root, error) {
func createTempInRoot(root *os.Root, name string, data []byte) (string, error) { func createTempInRoot(root *os.Root, name string, data []byte) (string, error) {
tempFile, err := os.CreateTemp(root.Name(), name) tempFile, err := os.CreateTemp(root.Name(), name)
if err != nil { if err != nil {
return "", fmt.Errorf("mktemp: %s", err) return "", fmt.Errorf("mktemp: %w", err)
} }
_, err = tempFile.Write(data) _, err = tempFile.Write(data)
tempFile.Close() tempFile.Close()
if err != nil { if err != nil {
return "", fmt.Errorf("write: %s", err) return "", fmt.Errorf("write: %w", err)
} }
tempPath, err := filepath.Rel(root.Name(), tempFile.Name()) tempPath, err := filepath.Rel(root.Name(), tempFile.Name())
if err != nil { if err != nil {
return "", fmt.Errorf("relpath: %s", err) return "", fmt.Errorf("relpath: %w", err)
} }
return tempPath, nil return tempPath, nil
@@ -105,11 +105,11 @@ func createTempInRoot(root *os.Root, name string, data []byte) (string, error) {
func NewFSBackend(dir string) (*FSBackend, error) { func NewFSBackend(dir string) (*FSBackend, error) {
blobRoot, err := maybeCreateOpenRoot(dir, "blob") blobRoot, err := maybeCreateOpenRoot(dir, "blob")
if err != nil { if err != nil {
return nil, fmt.Errorf("blob: %s", err) return nil, fmt.Errorf("blob: %w", err)
} }
siteRoot, err := maybeCreateOpenRoot(dir, "site") siteRoot, err := maybeCreateOpenRoot(dir, "site")
if err != nil { if err != nil {
return nil, fmt.Errorf("site: %s", err) return nil, fmt.Errorf("site: %w", err)
} }
return &FSBackend{blobRoot, siteRoot}, nil return &FSBackend{blobRoot, siteRoot}, nil
} }
@@ -122,11 +122,11 @@ func (fs *FSBackend) GetBlob(name string) (io.ReadSeeker, time.Time, error) {
blobPath := filepath.Join(splitBlobName(name)...) blobPath := filepath.Join(splitBlobName(name)...)
stat, err := fs.blobRoot.Stat(blobPath) stat, err := fs.blobRoot.Stat(blobPath)
if err != nil { if err != nil {
return nil, time.Time{}, fmt.Errorf("stat: %s", err) return nil, time.Time{}, fmt.Errorf("stat: %w", err)
} }
file, err := fs.blobRoot.Open(blobPath) file, err := fs.blobRoot.Open(blobPath)
if err != nil { if err != nil {
return nil, time.Time{}, fmt.Errorf("open: %s", err) return nil, time.Time{}, fmt.Errorf("open: %w", err)
} }
return file, stat.ModTime(), nil return file, stat.ModTime(), nil
} }
@@ -141,15 +141,15 @@ func (fs *FSBackend) PutBlob(name string, data []byte) error {
} }
if err := fs.blobRoot.Chmod(tempPath, 0o444); err != nil { if err := fs.blobRoot.Chmod(tempPath, 0o444); err != nil {
return fmt.Errorf("chmod: %s", err) return fmt.Errorf("chmod: %w", err)
} }
if err := fs.blobRoot.MkdirAll(blobDir, 0o755); err != nil { if err := fs.blobRoot.MkdirAll(blobDir, 0o755); err != nil {
return fmt.Errorf("mkdir: %s", err) return fmt.Errorf("mkdir: %w", err)
} }
if err := fs.blobRoot.Rename(tempPath, blobPath); err != nil { if err := fs.blobRoot.Rename(tempPath, blobPath); err != nil {
return fmt.Errorf("rename: %s", err) return fmt.Errorf("rename: %w", err)
} }
return nil return nil
@@ -182,7 +182,7 @@ func (fs *FSBackend) StageManifest(manifest *Manifest) error {
} }
if err := fs.siteRoot.Rename(tempPath, stagedManifestName(manifestData)); err != nil { if err := fs.siteRoot.Rename(tempPath, stagedManifestName(manifestData)); err != nil {
return fmt.Errorf("rename: %s", err) return fmt.Errorf("rename: %w", err)
} }
return nil return nil
@@ -197,11 +197,11 @@ func (fs *FSBackend) CommitManifest(name string, manifest *Manifest) error {
} }
if err := fs.siteRoot.MkdirAll(filepath.Dir(name), 0o755); err != nil { if err := fs.siteRoot.MkdirAll(filepath.Dir(name), 0o755); err != nil {
return fmt.Errorf("mkdir: %s", err) return fmt.Errorf("mkdir: %w", err)
} }
if err := fs.siteRoot.Rename(manifestHashName, name); err != nil { if err := fs.siteRoot.Rename(manifestHashName, name); err != nil {
return fmt.Errorf("rename: %s", err) return fmt.Errorf("rename: %w", err)
} }
return nil return nil
@@ -250,7 +250,7 @@ func defaultCacheConfig[K comparable, V any](
if config.MaxAge != "" { if config.MaxAge != "" {
maxAge, err = time.ParseDuration(config.MaxAge) maxAge, err = time.ParseDuration(config.MaxAge)
if err != nil { if err != nil {
return nil, fmt.Errorf("max-age: %s", err) return nil, fmt.Errorf("max-age: %w", err)
} }
} }
if config.MaxSize != 0 { if config.MaxSize != 0 {
+8 -8
View File
@@ -23,22 +23,22 @@ func FetchRepository(repoURL string, branch string) (*Manifest, error) {
Tags: git.NoTags, Tags: git.NoTags,
}) })
if err != nil { if err != nil {
return nil, fmt.Errorf("git clone: %s", err) return nil, fmt.Errorf("git clone: %w", err)
} }
ref, err := repo.Head() ref, err := repo.Head()
if err != nil { if err != nil {
return nil, fmt.Errorf("git head: %s", err) return nil, fmt.Errorf("git head: %w", err)
} }
commit, err := repo.CommitObject(ref.Hash()) commit, err := repo.CommitObject(ref.Hash())
if err != nil { if err != nil {
return nil, fmt.Errorf("git commit: %s", err) return nil, fmt.Errorf("git commit: %w", err)
} }
tree, err := repo.TreeObject(commit.TreeHash) tree, err := repo.TreeObject(commit.TreeHash)
if err != nil { if err != nil {
return nil, fmt.Errorf("git tree: %s", err) return nil, fmt.Errorf("git tree: %w", err)
} }
walker := object.NewTreeWalker(tree, true, make(map[plumbing.Hash]bool)) walker := object.NewTreeWalker(tree, true, make(map[plumbing.Hash]bool))
@@ -56,23 +56,23 @@ func FetchRepository(repoURL string, branch string) (*Manifest, error) {
if err == io.EOF { if err == io.EOF {
break break
} else if err != nil { } else if err != nil {
return nil, fmt.Errorf("git walker: %s", err) return nil, fmt.Errorf("git walker: %w", err)
} else { } else {
manifestEntry := Entry{} manifestEntry := Entry{}
if entry.Mode.IsFile() { if entry.Mode.IsFile() {
blob, err := repo.BlobObject(entry.Hash) blob, err := repo.BlobObject(entry.Hash)
if err != nil { if err != nil {
return nil, fmt.Errorf("git blob %s: %s", name, err) return nil, fmt.Errorf("git blob %s: %w", name, err)
} }
reader, err := blob.Reader() reader, err := blob.Reader()
if err != nil { if err != nil {
return nil, fmt.Errorf("git blob open: %s", err) return nil, fmt.Errorf("git blob open: %w", err)
} }
data, err := io.ReadAll(reader) data, err := io.ReadAll(reader)
if err != nil { if err != nil {
return nil, fmt.Errorf("git blob read: %s", err) return nil, fmt.Errorf("git blob read: %w", err)
} }
if entry.Mode == filemode.Symlink { if entry.Mode == filemode.Symlink {
+3 -3
View File
@@ -111,7 +111,7 @@ func StoreManifest(backend Backend, name string, manifest *Manifest) (*Manifest,
} }
if err := backend.StageManifest(extManifest); err != nil { if err := backend.StageManifest(extManifest); err != nil {
return nil, fmt.Errorf("stage: %s", err) return nil, fmt.Errorf("stage: %w", err)
} }
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
@@ -121,7 +121,7 @@ func StoreManifest(backend Backend, name string, manifest *Manifest) (*Manifest,
wg.Go(func() { wg.Go(func() {
err := backend.PutBlob(string(entry.Data), manifest.Tree[name].Data) err := backend.PutBlob(string(entry.Data), manifest.Tree[name].Data)
if err != nil { if err != nil {
ch <- fmt.Errorf("put blob %s: %s", name, err) ch <- fmt.Errorf("put blob %s: %w", name, err)
} }
}) })
} }
@@ -133,7 +133,7 @@ func StoreManifest(backend Backend, name string, manifest *Manifest) (*Manifest,
} }
if err := backend.CommitManifest(name, extManifest); err != nil { if err := backend.CommitManifest(name, extManifest); err != nil {
return nil, fmt.Errorf("commit: %s", err) return nil, fmt.Errorf("commit: %w", err)
} }
return extManifest, nil return extManifest, nil
+2 -2
View File
@@ -164,7 +164,7 @@ func putPage(w http.ResponseWriter, r *http.Request) error {
requestBody, err := io.ReadAll(r.Body) requestBody, err := io.ReadAll(r.Body)
if err != nil { if err != nil {
return fmt.Errorf("body read: %s", err) return fmt.Errorf("body read: %w", err)
} }
// request body contains git repository URL `https://codeberg.org/...` // request body contains git repository URL `https://codeberg.org/...`
@@ -257,7 +257,7 @@ func postPage(w http.ResponseWriter, r *http.Request) error {
requestBody, err := io.ReadAll(r.Body) requestBody, err := io.ReadAll(r.Body)
if err != nil { if err != nil {
return fmt.Errorf("body read: %s", err) return fmt.Errorf("body read: %w", err)
} }
var event map[string]any var event map[string]any