creators.go 1.0 KB

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