creators.go 944 B

1234567891011121314151617181920212223242526272829303132
  1. package sdk
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. //NewSDKFromPath creates SDK from path to dir
  7. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  8. func NewSDKFromPath(dirPath string) SDK {
  9. return SDK{dirPath: dirPath}
  10. }
  11. //NewSDKFromEnv creates SDK from environment variable. For example: ${ANDROID_SDK_ROOT}
  12. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  13. func NewSDKFromEnv(env string) SDK {
  14. return NewSDKFromPath(os.ExpandEnv(env))
  15. }
  16. //NewSDK creates SDK from ANDROID_SDK_ROOT and ANDROID_HOME environment variables if it exists
  17. //goland:noinspection GoUnnecessarilyExportedIdentifiers,GoUnusedExportedFunction
  18. func NewSDK() SDK {
  19. environments := []string{"ANDROID_SDK_ROOT", "ANDROID_HOME"}
  20. for _, val := range environments {
  21. if key, ok := os.LookupEnv(val); ok {
  22. return NewSDKFromEnv(key)
  23. }
  24. }
  25. panic(fmt.Errorf("following environments was checked: %s. They are not set", environments))
  26. return SDK{} // just for compiler
  27. }