You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
5 months ago
|
#! /usr/bin/env python
|
||
|
#coding=utf-8
|
||
|
#
|
||
|
# Copyright (c) 2024, RT-Thread Development Team
|
||
|
#
|
||
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
#
|
||
|
# Change Logs:
|
||
|
# Date Author Notes
|
||
|
# 2024-04-20 Bernard the first version
|
||
|
|
||
|
import os
|
||
|
import json
|
||
|
import platform
|
||
|
|
||
|
def GetEnvPath():
|
||
|
env = os.environ.get('ENV_ROOT')
|
||
|
|
||
|
if env is None:
|
||
|
if platform.system() == 'Windows':
|
||
|
return os.path.join(os.environ['USERPROFILE'], '.env')
|
||
|
else:
|
||
|
return os.path.join(os.environ['HOME'], '.env')
|
||
|
|
||
|
return env
|
||
|
|
||
|
def GetSDKPackage():
|
||
|
env = GetEnvPath()
|
||
|
|
||
|
if env:
|
||
|
return os.path.join(env, 'tools', 'packages')
|
||
|
|
||
|
return None
|
||
|
|
||
|
def GetSDKPath(name):
|
||
|
env = GetEnvPath()
|
||
|
|
||
|
if env:
|
||
|
#read packages.json under env/tools/packages
|
||
|
with open(os.path.join(env, 'tools', 'packages', 'pkgs.json'), 'r', encoding='utf-8') as f:
|
||
|
# packages_json = f.read()
|
||
|
packages = json.load(f)
|
||
|
|
||
|
for item in packages:
|
||
|
package_path = os.path.join(GetEnvPath(), 'packages', item['path'], 'package.json')
|
||
|
# read package['path']/package.json under env/packages
|
||
|
with open(package_path, 'r', encoding='utf-8') as f:
|
||
|
# package_json = f.read()
|
||
|
package = json.load(f)
|
||
|
|
||
|
if package['name'] == name:
|
||
|
return os.path.join(GetSDKPackage(), package['name'] + '-' + item['ver'])
|
||
|
|
||
|
# not found named package
|
||
|
return None
|