tq: teach *TransferQueue to hold a progress.CopyCallback
This commit is contained in:
parent
211e886290
commit
e031ee6c79
@ -95,6 +95,7 @@ type TransferQueue struct {
|
||||
adapterInProgress bool
|
||||
adapterInitMutex sync.Mutex
|
||||
dryRun bool
|
||||
cb progress.CopyCallback
|
||||
meter progress.Meter
|
||||
errors []error
|
||||
transfers map[string]*objectTuple
|
||||
@ -134,6 +135,12 @@ func WithProgress(m progress.Meter) Option {
|
||||
}
|
||||
}
|
||||
|
||||
func WithProgressCallback(cb progress.CopyCallback) Option {
|
||||
return func(tq *TransferQueue) {
|
||||
tq.cb = cb
|
||||
}
|
||||
}
|
||||
|
||||
func WithBatchSize(size int) Option {
|
||||
return func(tq *TransferQueue) { tq.batchSize = size }
|
||||
}
|
||||
@ -575,6 +582,9 @@ func (q *TransferQueue) ensureAdapterBegun(e lfsapi.Endpoint) error {
|
||||
// Progress callback - receives byte updates
|
||||
cb := func(name string, total, read int64, current int) error {
|
||||
q.meter.TransferBytes(q.direction.String(), name, read, total, current)
|
||||
if q.cb != nil {
|
||||
q.cb(total, read, current)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user