32 lines
744 B
Go
32 lines
744 B
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package client
|
|
|
|
import (
|
|
"github.com/hashicorp/vagrant/internal/runner"
|
|
)
|
|
|
|
// startRunner initializes and starts a local runner. If the returned
|
|
// runner is non-nil, you must call Close on it to clean up resources properly.
|
|
func (c *Client) startRunner() (*runner.Runner, error) {
|
|
// Initialize our runner
|
|
r, err := runner.New(
|
|
runner.WithClient(c.client),
|
|
runner.WithVagrantRubyRuntime(c.rubyRuntime),
|
|
runner.WithLogger(c.logger),
|
|
runner.ByIdOnly(), // We'll direct target this
|
|
runner.WithLocal(c.ui), // Local mode
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// Start the runner
|
|
if err := r.Start(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return r, nil
|
|
}
|