ref: 5b1a67514d984240240234d1e7d203b481a03f62
parent: 130f45404af37a4fe02052a5378c33bcb02b9ebc
author: Runxi Yu <me@runxiyu.org>
date: Sun Feb 22 08:34:10 EST 2026
show-object: Fix defer
--- a/cmd/show-object/main.go
+++ b/cmd/show-object/main.go
@@ -22,33 +22,41 @@
log.Fatal("must provide -r <repo> and -h <ref-or-object-id>")}
+ if err := run(repoPath, name); err != nil {+ log.Fatalf("run: %v", err)+ }
+}
+
+func run(repoPath *string, name *string) error {root, err := os.OpenRoot(*repoPath)
if err != nil {- log.Fatalf("open repo root: %v", err)+ return fmt.Errorf("open repo root: %w", err)}
defer func() { _ = root.Close() }()repo, err := repository.Open(root)
if err != nil {- log.Fatalf("open repository: %v", err)+ return fmt.Errorf("open repository: %w", err)}
id, err := resolveInput(repo, *name)
if err != nil {_ = repo.Close()
- log.Fatalf("resolve %q: %v", *name, err)+ return fmt.Errorf("resolve %q: %w", *name, err)}
stored, err := repo.ReadStored(id)
if err != nil {_ = repo.Close()
- log.Fatalf("read object %s: %v", id, err)+ return fmt.Errorf("read object %s: %w", id, err)}
printStored(stored)
if err := repo.Close(); err != nil {- log.Fatalf("close repository: %v", err)+ return fmt.Errorf("close repository: %w", err)}
+
+ return nil
}
func resolveInput(repo *repository.Repository, input string) (objectid.ObjectID, error) {--
⑨