in cmd/main.go [316:356]
func getRegionAndProfileAWSSession(regionName *string, profileName *string) (*session.Session, error) {
sessOpts := session.Options{SharedConfigState: session.SharedConfigEnable}
if regionName != nil {
sessOpts.Config.Region = regionName
}
if profileName != nil {
sessOpts.Profile = *profileName
if sessOpts.Config.Region == nil {
if profileRegion, err := getProfileRegion(*profileName); err != nil {
log.Println(err)
} else {
sessOpts.Config.Region = &profileRegion
}
}
}
sess := session.Must(session.NewSessionWithOptions(sessOpts))
if sess.Config.Region != nil && *sess.Config.Region != "" {
return sess, nil
}
if defaultProfileRegion, err := getProfileRegion(defaultProfile); err == nil {
sess.Config.Region = &defaultProfileRegion
return sess, nil
}
if defaultRegion, ok := os.LookupEnv(defaultRegionEnvVar); ok && defaultRegion != "" {
sess.Config.Region = &defaultRegion
return sess, nil
}
errorMsg := "Unable to find a region in the usual places: \n"
errorMsg = errorMsg + "\t - --region flag\n"
errorMsg = errorMsg + fmt.Sprintf("\t - %s environment variable\n", awsRegionEnvVar)
if profileName != nil {
errorMsg = errorMsg + fmt.Sprintf("\t - profile region in %s\n", awsConfigFile)
}
errorMsg = errorMsg + fmt.Sprintf("\t - default profile region in %s\n", awsConfigFile)
errorMsg = errorMsg + fmt.Sprintf("\t - %s environment variable\n", defaultRegionEnvVar)
return sess, fmt.Errorf(errorMsg)
}