42 lines
1005 B
Go
42 lines
1005 B
Go
package cli
|
|
|
|
import (
|
|
"github.com/99designs/aws-vault/vault"
|
|
"github.com/99designs/keyring"
|
|
kingpin "gopkg.in/alecthomas/kingpin.v2"
|
|
)
|
|
|
|
// GlobalConfig used for defaults and command line arguments
|
|
type GlobalConfig struct {
|
|
//Region in AWS used by KMSAuth and BLESS
|
|
Region string
|
|
|
|
AwsConfig *vault.Config
|
|
Keyring *keyring.Keyring
|
|
}
|
|
|
|
// ConfigureGlobal application arguments and flags
|
|
func ConfigureGlobal(app *kingpin.Application, config *GlobalConfig) {
|
|
|
|
app.Flag("region", "The region in AWS").
|
|
Default("ap-southeast-2").
|
|
StringVar(&config.Region)
|
|
|
|
app.PreAction(func(c *kingpin.ParseContext) (err error) {
|
|
|
|
// Attempt to open the aws-vault keychain
|
|
keychain, err := keyring.Open(keyring.Config{
|
|
KeychainName: "aws-vault",
|
|
ServiceName: "aws-vault",
|
|
AllowedBackends: []keyring.BackendType{keyring.KeychainBackend},
|
|
})
|
|
kingpin.FatalIfError(err, "Could not open aws-vault keychain")
|
|
|
|
//config.AwsConfig = awsConfig
|
|
config.Keyring = &keychain
|
|
|
|
return nil
|
|
})
|
|
|
|
}
|