1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
package shell
import "github.com/canonical/go-dqlite/v3/client"
// Option that can be used to tweak shell parameters.
type Option func(*options)
// WithDialFunc sets a custom dial function for connecting to dqlite endpoints.
func WithDialFunc(dial client.DialFunc) Option {
return func(options *options) {
options.Dial = dial
}
}
// WithDriverName sets a custom name for the registered dqlite driver. The
// default is "dqlite".
func WithDriverName(name string) Option {
return func(options *options) {
options.DriverName = name
}
}
// WithFormat specifies the output format.
func WithFormat(format string) Option {
return func(options *options) {
options.Format = format
}
}
type options struct {
Dial client.DialFunc
DriverName string
Format string
}
// Create a client options object with sane defaults.
func defaultOptions() *options {
return &options{
Dial: client.DefaultDialFunc,
DriverName: "dqlite",
Format: formatTabular,
}
}
const (
formatTabular = "tabular"
formatJson = "json"
)
|