commands.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package sdk
  2. import (
  3. "os"
  4. "path"
  5. "sort"
  6. "notabug.org/Umnik/GoAndroidSDK/sdk/platforms"
  7. "notabug.org/Umnik/GoAndroidSDK/sdk/systemImages"
  8. )
  9. //RootDir returns path to SDK dir
  10. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  11. func (s SDK) RootDir() string {
  12. return s.dirPath
  13. }
  14. //PlatformTools returns path to "platform-tools" dir
  15. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  16. func (s SDK) PlatformTools() string {
  17. return path.Join(s.RootDir(), "platform-tools")
  18. }
  19. //BuildTools returns path to "build-tools" dir
  20. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  21. func (s SDK) BuildTools() string {
  22. return path.Join(s.RootDir(), "build-tools")
  23. }
  24. //LastBuildToolsVersion returns path to last available version in "build-tools" dir
  25. func (s SDK) LastBuildToolsVersion() string {
  26. dirEntries, err := os.ReadDir(s.BuildTools())
  27. if err != nil {
  28. panic(err)
  29. }
  30. versions := make([]string, len(dirEntries))
  31. for i := range dirEntries {
  32. versions[i] = dirEntries[i].Name()
  33. }
  34. sort.Strings(versions)
  35. return s.SpecificBuildToolsVersion(versions[len(versions)-1])
  36. }
  37. //SpecificBuildToolsVersion returns path to specified version in "build-tools" dir
  38. func (s SDK) SpecificBuildToolsVersion(version string) string {
  39. return path.Join(s.RootDir(), "build-tools", version)
  40. }
  41. //Platforms returns path to platforms directory
  42. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  43. func (s SDK) Platforms() string {
  44. return path.Join(s.RootDir(), "platforms")
  45. }
  46. //SpecificPlatform returns path to specific platform directory
  47. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  48. func (s SDK) SpecificPlatform(platform platforms.Platform) string {
  49. return path.Join(s.Platforms(), platform)
  50. }
  51. //SystemImages returns path to systemImages catalog
  52. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  53. func (s SDK) SystemImages() string {
  54. return path.Join(s.RootDir(), "systemImages")
  55. }
  56. //SpecificSystemImageType returns path to specific system image catalog
  57. //goland:noinspection GoUnnecessarilyExportedIdentifiers
  58. func (s SDK) SpecificSystemImageType(image systemImages.SystemImage, imageType systemImages.SystemImageType) string {
  59. return path.Join(s.SystemImages(), image, imageType)
  60. }