shared_config.go raw

   1  package shareddefaults
   2  
   3  import (
   4  	"os"
   5  	"os/user"
   6  	"path/filepath"
   7  )
   8  
   9  // SharedCredentialsFilename returns the SDK's default file path
  10  // for the shared credentials file.
  11  //
  12  // Builds the shared config file path based on the OS's platform.
  13  //
  14  //   - Linux/Unix: $HOME/.aws/credentials
  15  //   - Windows: %USERPROFILE%\.aws\credentials
  16  func SharedCredentialsFilename() string {
  17  	return filepath.Join(UserHomeDir(), ".aws", "credentials")
  18  }
  19  
  20  // SharedConfigFilename returns the SDK's default file path for
  21  // the shared config file.
  22  //
  23  // Builds the shared config file path based on the OS's platform.
  24  //
  25  //   - Linux/Unix: $HOME/.aws/config
  26  //   - Windows: %USERPROFILE%\.aws\config
  27  func SharedConfigFilename() string {
  28  	return filepath.Join(UserHomeDir(), ".aws", "config")
  29  }
  30  
  31  // UserHomeDir returns the home directory for the user the process is
  32  // running under.
  33  func UserHomeDir() string {
  34  	// Ignore errors since we only care about Windows and *nix.
  35  	home, _ := os.UserHomeDir()
  36  
  37  	if len(home) > 0 {
  38  		return home
  39  	}
  40  
  41  	currUser, _ := user.Current()
  42  	if currUser != nil {
  43  		home = currUser.HomeDir
  44  	}
  45  
  46  	return home
  47  }
  48