diff options
| -rw-r--r-- | receivepack/receivepack.go | 1 | ||||
| -rw-r--r-- | receivepack/service/ingest_quarantine.go | 20 | ||||
| -rw-r--r-- | receivepack/service/options.go | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/receivepack/receivepack.go b/receivepack/receivepack.go index d4a3f6fb..42095e1b 100644 --- a/receivepack/receivepack.go +++ b/receivepack/receivepack.go @@ -89,6 +89,7 @@ func ReceivePack( Refs: opts.Refs, ExistingObjects: opts.ExistingObjects, ObjectsRoot: opts.ObjectsRoot, + Progress: progressWriter, PromotedObjectPermissions: translatePromotedObjectPermissions( opts.PromotedObjectPermissions, ), diff --git a/receivepack/service/ingest_quarantine.go b/receivepack/service/ingest_quarantine.go index c41f6c86..921ce217 100644 --- a/receivepack/service/ingest_quarantine.go +++ b/receivepack/service/ingest_quarantine.go @@ -4,6 +4,7 @@ import ( "os" "codeberg.org/lindenii/furgit/format/pack/ingest" + "codeberg.org/lindenii/furgit/internal/utils" ) func (service *Service) ingestQuarantine( @@ -15,7 +16,11 @@ func (service *Service) ingestQuarantine( return "", nil, true } + utils.WriteProgressf(service.opts.Progress, "receiving objects: ingesting pack\n") + if req.Pack == nil { + utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: missing pack stream\n") + result.UnpackError = "missing pack stream" fillCommandErrors(result, commands, "missing pack stream") @@ -23,6 +28,8 @@ func (service *Service) ingestQuarantine( } if service.opts.ObjectsRoot == nil { + utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: objects root not configured\n") + result.UnpackError = "objects root not configured" fillCommandErrors(result, commands, "objects root not configured") @@ -31,6 +38,8 @@ func (service *Service) ingestQuarantine( quarantineName, quarantineRoot, err := service.createQuarantineRoot() if err != nil { + utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err) + result.UnpackError = err.Error() fillCommandErrors(result, commands, err.Error()) @@ -39,6 +48,8 @@ func (service *Service) ingestQuarantine( quarantinePackRoot, err := service.openQuarantinePackRoot(quarantineRoot) if err != nil { + utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err) + result.UnpackError = err.Error() fillCommandErrors(result, commands, err.Error()) @@ -56,12 +67,15 @@ func (service *Service) ingestQuarantine( FixThin: true, WriteRev: true, Base: service.opts.ExistingObjects, + Progress: service.opts.Progress, }, ) _ = quarantinePackRoot.Close() if err != nil { + utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err) + result.UnpackError = err.Error() fillCommandErrors(result, commands, err.Error()) @@ -71,6 +85,12 @@ func (service *Service) ingestQuarantine( return "", nil, false } + utils.WriteProgressf( + "receiving objects: unpack ok, %d objects (%s)\n", + ingested.ObjectCount, + ingested.PackHash, + ) + result.Ingest = &ingested return quarantineName, quarantineRoot, true diff --git a/receivepack/service/options.go b/receivepack/service/options.go index b8dda2f7..ec451ebf 100644 --- a/receivepack/service/options.go +++ b/receivepack/service/options.go @@ -1,6 +1,7 @@ package service import ( + "io" "io/fs" "os" @@ -20,6 +21,7 @@ type Options struct { Refs refstore.ReadWriteStore ExistingObjects objectstore.Store ObjectsRoot *os.Root + Progress io.Writer PromotedObjectPermissions *PromotedObjectPermissions Hook Hook HookIO HookIO |
