2b2bc2a911
* Create a new command/config subpackage. This PR extracts the functions associated with loading and parsing configs, and the DefaultTokenHelper, into a command/config subpackage, just like TokenHelpers are in the command/token subpackage. The goal is to allow other clients (in this case, the Vault and Nomad Terraform providers, but in theory any client that wants to lean on Vault's default behaviour) to reuse this logic and not drift from Vault, without vendoring the entirety of Vault. To retain backwards compatibility, I didn't remove any functions from the command package; I just copied them into the command/config package, and update the functions in the command package to call through to the config package.
25 lines
513 B
Go
25 lines
513 B
Go
package config
|
|
|
|
import (
|
|
"github.com/hashicorp/vault/command/token"
|
|
)
|
|
|
|
// DefaultTokenHelper returns the token helper that is configured for Vault.
|
|
func DefaultTokenHelper() (token.TokenHelper, error) {
|
|
config, err := LoadConfig("")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
path := config.TokenHelper
|
|
if path == "" {
|
|
return &token.InternalTokenHelper{}, nil
|
|
}
|
|
|
|
path, err = token.ExternalTokenHelperPath(path)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &token.ExternalTokenHelper{BinaryPath: path}, nil
|
|
}
|