env.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #! /usr/bin/env python
  2. #coding=utf-8
  3. #
  4. # Copyright (c) 2024, RT-Thread Development Team
  5. #
  6. # SPDX-License-Identifier: GPL-2.0
  7. #
  8. # Change Logs:
  9. # Date Author Notes
  10. # 2024-04-20 Bernard the first version
  11. import os
  12. import json
  13. import platform
  14. def GetEnvPath():
  15. env = os.environ.get('ENV_ROOT')
  16. if env is None:
  17. if platform.system() == 'Windows':
  18. return os.path.join(os.environ['USERPROFILE'], '.env')
  19. else:
  20. return os.path.join(os.environ['HOME'], '.env')
  21. return env
  22. def GetSDKPackage():
  23. env = GetEnvPath()
  24. if env:
  25. return os.path.join(env, 'tools', 'packages')
  26. return None
  27. def GetSDKPath(name):
  28. env = GetEnvPath()
  29. if env:
  30. #read packages.json under env/tools/packages
  31. with open(os.path.join(env, 'tools', 'packages', 'pkgs.json'), 'r', encoding='utf-8') as f:
  32. # packages_json = f.read()
  33. packages = json.load(f)
  34. for item in packages:
  35. package_path = os.path.join(GetEnvPath(), 'packages', item['path'], 'package.json')
  36. # read package['path']/package.json under env/packages
  37. with open(package_path, 'r', encoding='utf-8') as f:
  38. # package_json = f.read()
  39. package = json.load(f)
  40. if package['name'] == name:
  41. return os.path.join(GetSDKPackage(), package['name'] + '-' + item['ver'])
  42. # not found named package
  43. return None