aboutsummaryrefslogtreecommitdiff
path: root/network/receivepack/service/run_hook.go
diff options
context:
space:
mode:
Diffstat (limited to 'network/receivepack/service/run_hook.go')
-rw-r--r--network/receivepack/service/run_hook.go82
1 files changed, 1 insertions, 81 deletions
diff --git a/network/receivepack/service/run_hook.go b/network/receivepack/service/run_hook.go
index c3b1a8c7..1943dfd7 100644
--- a/network/receivepack/service/run_hook.go
+++ b/network/receivepack/service/run_hook.go
@@ -2,20 +2,16 @@ package service
import (
"context"
- "os"
"codeberg.org/lindenii/furgit/internal/utils"
objectstore "codeberg.org/lindenii/furgit/object/store"
- "codeberg.org/lindenii/furgit/object/store/loose"
- objectmix "codeberg.org/lindenii/furgit/object/store/mix"
- "codeberg.org/lindenii/furgit/object/store/packed"
)
func (service *Service) runHook(
ctx context.Context,
req *Request,
commands []Command,
- quarantineName string,
+ quarantinedObjects objectstore.Reader,
) (
allowedCommands []Command,
allowedIndices []int,
@@ -37,82 +33,6 @@ func (service *Service) runHook(
utils.BestEffortFprintf(service.opts.Progress, "running hooks...\r")
- quarantinedObjects := service.opts.ExistingObjects
-
- var (
- quarantineObjectsStore objectstore.Reader
- quarantineLooseStore *loose.Store
- quarantinePackedStore *packed.Store
- quarantineLooseRoot *os.Root
- quarantinePackRoot *os.Root
- err error
- )
-
- //nolint:nestif
- if quarantineName != "" {
- quarantineLooseRoot, err = service.opts.ObjectsRoot.OpenRoot(quarantineName)
- if err != nil {
- utils.BestEffortFprintf(service.opts.Progress, "running hooks: failed: %v.\n", err)
-
- return nil, nil, nil, false, err.Error()
- }
-
- quarantineLooseStore, err = loose.New(quarantineLooseRoot, service.opts.Algorithm)
- if err != nil {
- _ = quarantineLooseRoot.Close()
-
- utils.BestEffortFprintf(service.opts.Progress, "running hooks: failed: %v.\n", err)
-
- return nil, nil, nil, false, err.Error()
- }
-
- quarantinedObjects = quarantineLooseStore
-
- quarantinePackRoot, err = quarantineLooseRoot.OpenRoot("pack")
- if err == nil {
- var packedErr error
-
- quarantinePackedStore, packedErr = packed.New(quarantinePackRoot, service.opts.Algorithm, packed.Options{})
- if packedErr != nil {
- _ = quarantineLooseStore.Close()
- _ = quarantinePackRoot.Close()
- _ = quarantineLooseRoot.Close()
-
- utils.BestEffortFprintf(service.opts.Progress, "running hooks: failed: %v.\n", packedErr)
-
- return nil, nil, nil, false, packedErr.Error()
- }
-
- quarantineObjectsStore = objectmix.New(quarantineLooseStore, quarantinePackedStore)
- quarantinedObjects = quarantineObjectsStore
- } else if !os.IsNotExist(err) {
- _ = quarantineLooseStore.Close()
- _ = quarantineLooseRoot.Close()
-
- utils.BestEffortFprintf(service.opts.Progress, "running hooks: failed: %v.\n", err)
-
- return nil, nil, nil, false, err.Error()
- }
-
- defer func() {
- if quarantinePackedStore != nil {
- _ = quarantinePackedStore.Close()
- }
-
- if quarantineLooseStore != nil {
- _ = quarantineLooseStore.Close()
- }
-
- if quarantinePackRoot != nil {
- _ = quarantinePackRoot.Close()
- }
-
- if quarantineLooseRoot != nil {
- _ = quarantineLooseRoot.Close()
- }
- }()
- }
-
decisions, err := service.opts.Hook(ctx, HookRequest{
Refs: service.opts.Refs,
ExistingObjects: service.opts.ExistingObjects,