aboutsummaryrefslogtreecommitdiff
path: root/cmd/show-object
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-04-02 06:23:30 +0000
committerGravatar Runxi Yu2026-04-02 06:28:39 +0000
commita041d523de389b65b98a5373a8034041db2a8d83 (patch)
tree7b423dc735f463be616045f2c3c2095a7737aca7 /cmd/show-object
parentresearch: Add dynamic pack resources (diff)
*: Remove
Diffstat (limited to 'cmd/show-object')
-rw-r--r--cmd/show-object/main.go23
-rw-r--r--cmd/show-object/print.go74
-rw-r--r--cmd/show-object/resolve.go22
-rw-r--r--cmd/show-object/run.go45
4 files changed, 0 insertions, 164 deletions
diff --git a/cmd/show-object/main.go b/cmd/show-object/main.go
deleted file mode 100644
index 8fdffac8..00000000
--- a/cmd/show-object/main.go
+++ /dev/null
@@ -1,23 +0,0 @@
-// Command show-object provides a small command line utility to show the details of a specified Git object.
-package main
-
-import (
- "flag"
- "log"
-)
-
-func main() {
- repoPath := flag.String("r", "", "path to git dir (.git or bare repo root)")
- name := flag.String("h", "", "reference name or object id")
-
- flag.Parse()
-
- if *repoPath == "" || *name == "" {
- log.Fatal("must provide -r <repo> and -h <ref-or-object-id>")
- }
-
- err := run(repoPath, name)
- if err != nil {
- log.Fatalf("run: %v", err)
- }
-}
diff --git a/cmd/show-object/print.go b/cmd/show-object/print.go
deleted file mode 100644
index 75484f73..00000000
--- a/cmd/show-object/print.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
- "strings"
-
- "codeberg.org/lindenii/furgit/object"
- "codeberg.org/lindenii/furgit/object/blob"
- "codeberg.org/lindenii/furgit/object/commit"
- "codeberg.org/lindenii/furgit/object/stored"
- "codeberg.org/lindenii/furgit/object/tag"
- "codeberg.org/lindenii/furgit/object/tree"
-)
-
-func printStored(s *stored.Stored[object.Object]) {
- var b strings.Builder
-
- id := s.ID()
- ty := s.Object().ObjectType()
-
- tyName, ok := ty.Name()
- if !ok {
- tyName = fmt.Sprintf("type %d", ty)
- }
-
- fmt.Fprintf(&b, "id: %s\n", id)
- fmt.Fprintf(&b, "type: %s\n", tyName)
-
- switch obj := s.Object().(type) {
- case *blob.Blob:
- blob := obj
- fmt.Fprintf(&b, "size: %d\n", len(blob.Data))
- fmt.Fprintf(&b, "data: %q\n", string(blob.Data))
- case *tree.Tree:
- tree := obj
- fmt.Fprintf(&b, "entries: %d\n", len(tree.Entries))
-
- for _, entry := range tree.Entries {
- fmt.Fprintf(&b, "%06o %s\t%s\n", entry.Mode, entry.ID, entry.Name)
- }
- case *commit.Commit:
- commit := obj
- fmt.Fprintf(&b, "tree: %s\n", commit.Tree)
-
- for _, parent := range commit.Parents {
- fmt.Fprintf(&b, "parent: %s\n", parent)
- }
-
- fmt.Fprintf(&b, "author: %s <%s>\n", commit.Author.Name, commit.Author.Email)
- fmt.Fprintf(&b, "committer: %s <%s>\n", commit.Committer.Name, commit.Committer.Email)
- fmt.Fprintf(&b, "message:\n%s\n", string(commit.Message))
- case *tag.Tag:
- tag := obj
-
- targetTy, ok := tag.TargetType.Name()
- if !ok {
- targetTy = fmt.Sprintf("type %d", tag.TargetType)
- }
-
- fmt.Fprintf(&b, "target: %s (%s)\n", tag.Target, targetTy)
- fmt.Fprintf(&b, "name: %s\n", tag.Name)
-
- if tag.Tagger != nil {
- fmt.Fprintf(&b, "tagger: %s <%s>\n", tag.Tagger.Name, tag.Tagger.Email)
- }
-
- fmt.Fprintf(&b, "message:\n%s\n", string(tag.Message))
- default:
- fmt.Fprintf(&b, "%#v\n", obj)
- }
-
- _, _ = os.Stdout.WriteString(b.String())
-}
diff --git a/cmd/show-object/resolve.go b/cmd/show-object/resolve.go
deleted file mode 100644
index eaf2c102..00000000
--- a/cmd/show-object/resolve.go
+++ /dev/null
@@ -1,22 +0,0 @@
-package main
-
-import (
- "strings"
-
- objectid "codeberg.org/lindenii/furgit/object/id"
- "codeberg.org/lindenii/furgit/repository"
-)
-
-func resolveInput(repo *repository.Repository, input string) (objectid.ObjectID, error) {
- id, err := objectid.ParseHex(repo.Algorithm(), strings.TrimSpace(input))
- if err == nil {
- return id, nil
- }
-
- resolved, err := repo.Refs().ResolveToDetached(input)
- if err != nil {
- return objectid.ObjectID{}, err
- }
-
- return resolved.ID, nil
-}
diff --git a/cmd/show-object/run.go b/cmd/show-object/run.go
deleted file mode 100644
index f1a6fc6d..00000000
--- a/cmd/show-object/run.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
-
- "codeberg.org/lindenii/furgit/repository"
-)
-
-func run(repoPath, name *string) error {
- root, err := os.OpenRoot(*repoPath)
- if err != nil {
- return fmt.Errorf("open repo root: %w", err)
- }
-
- defer func() { _ = root.Close() }()
-
- repo, err := repository.Open(root)
- if err != nil {
- return fmt.Errorf("open repository: %w", err)
- }
-
- id, err := resolveInput(repo, *name)
- if err != nil {
- _ = repo.Close()
-
- return fmt.Errorf("resolve %q: %w", *name, err)
- }
-
- s, err := repo.Fetcher().ExactObject(id)
- if err != nil {
- _ = repo.Close()
-
- return fmt.Errorf("read object %s: %w", id, err)
- }
-
- printStored(s)
-
- err = repo.Close()
- if err != nil {
- return fmt.Errorf("close repository: %w", err)
- }
-
- return nil
-}