aboutsummaryrefslogtreecommitdiff
path: root/cmd/index-pack
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/index-pack')
-rw-r--r--cmd/index-pack/algorithm.go25
-rw-r--r--cmd/index-pack/main.go26
-rw-r--r--cmd/index-pack/run.go95
3 files changed, 0 insertions, 146 deletions
diff --git a/cmd/index-pack/algorithm.go b/cmd/index-pack/algorithm.go
deleted file mode 100644
index fc57991a..00000000
--- a/cmd/index-pack/algorithm.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package main
-
-import (
- "fmt"
-
- objectid "codeberg.org/lindenii/furgit/object/id"
- "codeberg.org/lindenii/furgit/repository"
-)
-
-func resolveAlgorithm(repo *repository.Repository, objectFormat string) (objectid.Algorithm, error) {
- if objectFormat != "" {
- algo, ok := objectid.ParseAlgorithm(objectFormat)
- if !ok {
- return objectid.AlgorithmUnknown, fmt.Errorf("invalid object format %q", objectFormat)
- }
-
- return algo, nil
- }
-
- if repo != nil {
- return repo.Algorithm(), nil
- }
-
- return objectid.AlgorithmSHA1, nil
-}
diff --git a/cmd/index-pack/main.go b/cmd/index-pack/main.go
deleted file mode 100644
index 2034f83d..00000000
--- a/cmd/index-pack/main.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// Command index-pack ingests one pack stream from stdin and writes .pack/.idx/.rev.
-package main
-
-import (
- "flag"
- "log"
-)
-
-func main() {
- repoPath := flag.String("r", "", "path to git dir (.git or bare repo root)")
- destinationPath := flag.String("destination", "", "path to destination objects/pack directory")
- objectFormat := flag.String("object-format", "", "object format (sha1 or sha256)")
- fixThin := flag.Bool("fix-thin", false, "fix thin packs using repository object store")
- writeRev := flag.Bool("rev-index", true, "write reverse index (.rev)")
-
- flag.Parse()
-
- if *destinationPath == "" {
- log.Fatal("must provide -destination <objects/pack>")
- }
-
- err := run(*repoPath, *destinationPath, *objectFormat, *fixThin, *writeRev)
- if err != nil {
- log.Fatalf("run: %v", err)
- }
-}
diff --git a/cmd/index-pack/run.go b/cmd/index-pack/run.go
deleted file mode 100644
index 742548fb..00000000
--- a/cmd/index-pack/run.go
+++ /dev/null
@@ -1,95 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
- "path/filepath"
-
- "codeberg.org/lindenii/furgit/format/packfile/ingest"
- objectid "codeberg.org/lindenii/furgit/object/id"
- objectstore "codeberg.org/lindenii/furgit/object/store"
- "codeberg.org/lindenii/furgit/repository"
-)
-
-func run(repoPath, destinationPath, objectFormat string, fixThin, writeRev bool) error {
- var (
- algo objectid.Algorithm
- base objectstore.Reader
- repo *repository.Repository
- )
-
- if repoPath != "" {
- repoRoot, err := os.OpenRoot(repoPath)
- if err != nil {
- return fmt.Errorf("open repo root: %w", err)
- }
-
- defer func() { _ = repoRoot.Close() }()
-
- repo, err = repository.Open(repoRoot)
- if err != nil {
- return fmt.Errorf("open repository: %w", err)
- }
-
- defer func() { _ = repo.Close() }()
- }
-
- algo, err := resolveAlgorithm(repo, objectFormat)
- if err != nil {
- return err
- }
-
- if fixThin {
- if repo == nil {
- return fmt.Errorf("fix-thin requires -r <repo>")
- }
-
- if repo.Algorithm() != algo {
- return fmt.Errorf("algorithm mismatch: repo=%s flag=%s", repo.Algorithm(), algo)
- }
-
- base = repo.Objects()
- }
-
- absDestination, err := filepath.Abs(destinationPath)
- if err != nil {
- return fmt.Errorf("absolute destination path: %w", err)
- }
-
- destinationRoot, err := os.OpenRoot(absDestination)
- if err != nil {
- return fmt.Errorf("open destination root: %w", err)
- }
-
- defer func() { _ = destinationRoot.Close() }()
-
- pending, err := ingest.Ingest(os.Stdin, algo, ingest.Options{
- FixThin: fixThin,
- WriteRev: writeRev,
- Base: base,
- RequireTrailingEOF: true,
- })
- if err != nil {
- return err
- }
-
- if pending.Header().ObjectCount == 0 {
- discarded, err := pending.Discard()
- if err != nil {
- return err
- }
-
- _, _ = fmt.Fprintf(os.Stdout, "pack\t%s\n", discarded.PackHash.String())
-
- return nil
- }
-
- result, err := pending.Continue(destinationRoot)
- if err != nil {
- return err
- }
-
- _, _ = fmt.Fprintf(os.Stdout, "pack\t%s\n", result.PackHash.String())
-
- return nil
-}