From 2f8f740ea1835bb8001be655d3d5e71b51f123c1 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 29 Nov 2025 16:31:26 +0800 Subject: show-object: Utility to show an arbitrary object from a repo --- cmd/show-object/main.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 cmd/show-object/main.go (limited to 'cmd/show-object') diff --git a/cmd/show-object/main.go b/cmd/show-object/main.go new file mode 100644 index 00000000..287c6027 --- /dev/null +++ b/cmd/show-object/main.go @@ -0,0 +1,37 @@ +package main + +import ( + "flag" + "fmt" + "log" + + "git.sr.ht/~runxiyu/furgit" +) + +func main() { + repoPath := flag.String("r", "", "path to repo (.git or bare)") + ref := flag.String("h", "", "ref or hash") + flag.Parse() + + if *repoPath == "" || *ref == "" { + log.Fatal("must provide -r repo and -h ref/hash") + } + + repo, err := furgit.OpenRepository(*repoPath) + if err != nil { + log.Fatalf("open repo: %v", err) + } + defer repo.Close() + + h, err := repo.ResolveRefFully(*ref) + if err != nil { + log.Fatalf("resolve ref: %v", err) + } + + obj, err := repo.ReadObject(h) + if err != nil { + log.Fatalf("read object: %v", err) + } + + fmt.Printf("%#v\n", obj) +} -- cgit v1.3.1-10-gc9f91