diff options
Diffstat (limited to 'network/receivepack/service/options.go')
| -rw-r--r-- | network/receivepack/service/options.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/network/receivepack/service/options.go b/network/receivepack/service/options.go new file mode 100644 index 00000000..7edf4f06 --- /dev/null +++ b/network/receivepack/service/options.go @@ -0,0 +1,36 @@ +package service + +import ( + "io" + "io/fs" + "os" + + objectid "codeberg.org/lindenii/furgit/object/id" + objectstorer "codeberg.org/lindenii/furgit/object/storer" + refstore "codeberg.org/lindenii/furgit/ref/store" +) + +type PromotedObjectPermissions struct { + DirMode fs.FileMode + FileMode fs.FileMode +} + +// Options configures one protocol-independent receive-pack service. +// +// Service borrows all configured dependencies. +// +// Refs and ExistingObjects are required and must be non-nil. +// ObjectsRoot is required if Execute may need to ingest or promote a pack. +// Progress, ProgressFlush, Hook, and HookIO are optional; when provided they +// are also borrowed for the duration of Execute. +type Options struct { + Algorithm objectid.Algorithm + Refs refstore.ReadWriteStore + ExistingObjects objectstorer.Store + ObjectsRoot *os.Root + Progress io.Writer + ProgressFlush func() error + PromotedObjectPermissions *PromotedObjectPermissions + Hook Hook + HookIO HookIO +} |
