From 72d585bcd5251c3bce87069a0cbdaa6dfc3aa6d3 Mon Sep 17 00:00:00 2001 From: youyo <1003ni2@gmail.com> Date: Mon, 21 Oct 2019 15:52:34 +0900 Subject: [PATCH] use library awsprofile --- cli.go | 11 ++++++++--- config.go | 42 ------------------------------------------ go.mod | 3 ++- go.sum | 6 ++++-- 4 files changed, 14 insertions(+), 48 deletions(-) delete mode 100644 config.go diff --git a/cli.go b/cli.go index d0f71a4..9d2deee 100644 --- a/cli.go +++ b/cli.go @@ -10,6 +10,7 @@ import ( "github.com/manifoldco/promptui" "github.com/spf13/cobra" "github.com/spf13/viper" + "github.com/youyo/awsprofile" ) func Run(cmd *cobra.Command, args []string) (err error) { @@ -104,12 +105,16 @@ func PreRun(cmd *cobra.Command, args []string) (err error) { selectProfile := viper.GetBool("select-profile") if selectProfile { - c := NewConfig() - if err := c.Load(); err != nil { + awsProfile := awsprofile.New() + + if err := awsProfile.Parse(); err != nil { return err } - profiles := c.ListProfiles() + profiles, err := awsProfile.ProfileNames() + if err != nil { + return err + } prompt := promptui.Select{ Label: "Profiles", diff --git a/config.go b/config.go deleted file mode 100644 index 08ee114..0000000 --- a/config.go +++ /dev/null @@ -1,42 +0,0 @@ -package awssh - -import ( - "os" - "path/filepath" - "strings" - - ini "gopkg.in/ini.v1" -) - -type ( - Config struct { - Data *ini.File - Profiles []string - } -) - -func NewConfig() *Config { - return new(Config) -} - -func (c *Config) Load() (err error) { - configFilePath := filepath.Join(os.Getenv("HOME"), ".aws/config") - data, err := ini.Load(configFilePath) - if err != nil { - return err - } - - c.Data = data - - return nil -} - -func (c *Config) ListProfiles() (profiles []string) { - for _, section := range c.Data.Sections() { - if section.HasKey("role_arn") { - profile := strings.Replace(section.Name(), "profile ", "", 1) - profiles = append(profiles, profile) - } - } - return profiles -} diff --git a/go.mod b/go.mod index 4dbfab2..f607cf5 100644 --- a/go.mod +++ b/go.mod @@ -13,6 +13,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.4.0 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 // indirect + github.com/youyo/awsprofile v0.0.4 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 - gopkg.in/ini.v1 v1.48.0 + gopkg.in/ini.v1 v1.49.0 ) diff --git a/go.sum b/go.sum index c8e9d25..3f2cb53 100644 --- a/go.sum +++ b/go.sum @@ -131,6 +131,8 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/youyo/awsprofile v0.0.4 h1:38XljNmDjY9Puj8hdhn6dlUwSS967DwA1O9deMmBVDc= +github.com/youyo/awsprofile v0.0.4/go.mod h1:+QR4+Hgz6f8/o3+YhDliMFWBAaBfJXLwK2sRmUoWJ3E= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -175,8 +177,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/ini.v1 v1.48.0 h1:URjZc+8ugRY5mL5uUeQH/a63JcHwdX9xZaWvmNWD7z8= -gopkg.in/ini.v1 v1.48.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.49.0 h1:MW0aLMiezbm/Ray0gJJ+nQFE2uOC9EpK2p5zPN3NqpM= +gopkg.in/ini.v1 v1.49.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=