mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-27 22:42:16 +00:00
406a5ec76f
Signed-off-by: Evan Lezar <elezar@nvidia.com>
34 lines
639 B
Go
34 lines
639 B
Go
package runtime
|
|
|
|
type rt struct {
|
|
logger *Logger
|
|
modeOverride string
|
|
}
|
|
|
|
// Interface is the interface for the runtime library.
|
|
type Interface interface {
|
|
Run([]string) error
|
|
}
|
|
|
|
// Option is a function that configures the runtime.
|
|
type Option func(*rt)
|
|
|
|
// New creates a runtime with the specified options.
|
|
func New(opts ...Option) Interface {
|
|
r := rt{}
|
|
for _, opt := range opts {
|
|
opt(&r)
|
|
}
|
|
if r.logger == nil {
|
|
r.logger = NewLogger()
|
|
}
|
|
return &r
|
|
}
|
|
|
|
// WithModeOverride allows for overriding the mode specified in the config.
|
|
func WithModeOverride(mode string) Option {
|
|
return func(r *rt) {
|
|
r.modeOverride = mode
|
|
}
|
|
}
|