diff --git a/cli/global.go b/cli/global.go index d6931aac9..51fefb618 100644 --- a/cli/global.go +++ b/cli/global.go @@ -64,7 +64,6 @@ func ConfigureGlobals(app *kingpin.Application) { if GlobalFlags.Backend != "" { allowedBackends = append(allowedBackends, keyring.BackendType(GlobalFlags.Backend)) } - keyringImpl, err = keyring.Open(keyring.Config{ ServiceName: "aws-vault", AllowedBackends: allowedBackends, @@ -74,6 +73,9 @@ func ConfigureGlobals(app *kingpin.Application) { KWalletAppID: "aws-vault", KWalletFolder: "aws-vault", }) + if err != nil { + return err + } } if awsConfig == nil { awsConfig, err = vault.LoadConfigFromEnv() diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 000000000..d13998b7b --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,13 @@ +version: '2.1' + +services: + aws-vault: + image: golang:1.9.2 + environment: + - CGO_ENABLED=0 + volumes: + - .:/go/src/github.com/99designs/aws-vault + - /root/.aws + - /root/.awsvault + working_dir: /go/src/github.com/99designs/aws-vault + entrypoint: go run main.go diff --git a/vendor/github.com/99designs/keyring/kwallet.go b/vendor/github.com/99designs/keyring/kwallet.go index be60408aa..02860d084 100644 --- a/vendor/github.com/99designs/keyring/kwallet.go +++ b/vendor/github.com/99designs/keyring/kwallet.go @@ -14,6 +14,12 @@ const ( ) func init() { + // silently fail if dbus isn't available + _, err := dbus.SessionBus() + if err != nil { + return + } + supportedBackends[KWalletBackend] = opener(func(cfg Config) (Keyring, error) { if cfg.ServiceName == "" { cfg.ServiceName = "kdewallet" diff --git a/vendor/github.com/99designs/keyring/libsecret.go b/vendor/github.com/99designs/keyring/libsecret.go index fef959339..ee0d10ad8 100644 --- a/vendor/github.com/99designs/keyring/libsecret.go +++ b/vendor/github.com/99designs/keyring/libsecret.go @@ -6,10 +6,17 @@ import ( "encoding/json" "fmt" + "github.com/godbus/dbus" "github.com/gsterjov/go-libsecret" ) func init() { + // silently fail if dbus isn't available + _, err := dbus.SessionBus() + if err != nil { + return + } + supportedBackends[SecretServiceBackend] = opener(func(cfg Config) (Keyring, error) { if cfg.ServiceName == "" { cfg.ServiceName = "secret-service" diff --git a/vendor/vendor.json b/vendor/vendor.json index 6ed6349a3..a8c461c4f 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -3,10 +3,10 @@ "ignore": "test", "package": [ { - "checksumSHA1": "yPdUwIYrb/mMRha15K2OPS2hcSo=", + "checksumSHA1": "D8hEjr7exRaY14eEFEXCSV6YXao=", "path": "github.com/99designs/keyring", - "revision": "864ec8407057ca036ab7f3cac503aef926fa59eb", - "revisionTime": "2017-11-28T00:42:29Z" + "revision": "5fbd4674c81065bd80b5adfee8a127c5c47e48ce", + "revisionTime": "2017-12-29T03:53:02Z" }, { "checksumSHA1": "KmjnydoAbofMieIWm+it5OWERaM=",