pkg/bundle/pipeline/builder.go (47 lines of code) (raw):
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package pipeline
import "io"
// Options defines default options.
type Options struct {
input io.Reader
output io.Writer
disableOutput bool
fpf FileProcessorFunc
ppf PackageProcessorFunc
cpf ChainProcessorFunc
kpf KVProcessorFunc
}
// Option represents option function
type Option func(*Options)
// InputReader defines the input reader used to retrieve the bundle content.
func InputReader(value io.Reader) Option {
return func(opts *Options) {
opts.input = value
}
}
// OutputWriter defines where the bundle will be written after process execution.
func OutputWriter(value io.Writer) Option {
return func(opts *Options) {
opts.output = value
}
}
// OutputDisabled assign the value to disableOutput option.
func OutputDisabled() Option {
return func(opts *Options) {
opts.disableOutput = true
}
}
// FileProcessor assign the file object processor.
func FileProcessor(f FileProcessorFunc) Option {
return func(opts *Options) {
opts.fpf = f
}
}
// PackageProcessor assign the package object processor.
func PackageProcessor(f PackageProcessorFunc) Option {
return func(opts *Options) {
opts.ppf = f
}
}
// ChainProcessor assign the chain object processor.
func ChainProcessor(f ChainProcessorFunc) Option {
return func(opts *Options) {
opts.cpf = f
}
}
// KVProcessor assign the KV object processor.
func KVProcessor(f KVProcessorFunc) Option {
return func(opts *Options) {
opts.kpf = f
}
}