From e47c15b7978e22b8f57e9b95651207296e12bb10 Mon Sep 17 00:00:00 2001 From: shinu Date: Mon, 21 Feb 2022 16:36:47 +0800 Subject: [PATCH 1/3] [update]:Add version check for env script upgrade --- cmds/cmd_package/__init__.py | 6 ++-- cmds/cmd_package/cmd_package_upgrade.py | 48 ++++++++++++++----------- env.py | 2 +- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/cmds/cmd_package/__init__.py b/cmds/cmd_package/__init__.py index 68361a40..82b17551 100644 --- a/cmds/cmd_package/__init__.py +++ b/cmds/cmd_package/__init__.py @@ -25,7 +25,9 @@ # 2019-01-07 SummerGift The prompt supports utf-8 encoding # 2020-04-08 SummerGift Optimize program structure # - +__version__ = 'RT-Thread packages v1.2.1' +# This version number prepares for the subsequent suspension +# of the env script to upgrade the python2 version from .cmd_package_printenv import package_print_env, package_print_help from .cmd_package_list import list_packages from .cmd_package_wizard import package_wizard @@ -45,7 +47,7 @@ def run_env_cmd(args): elif args.list_packages: list_packages() elif args.package_upgrade: - package_upgrade() + package_upgrade(__version__) elif args.package_print_env: package_print_env() else: diff --git a/cmds/cmd_package/cmd_package_upgrade.py b/cmds/cmd_package/cmd_package_upgrade.py index b9e3f413..dd543cc8 100644 --- a/cmds/cmd_package/cmd_package_upgrade.py +++ b/cmds/cmd_package/cmd_package_upgrade.py @@ -73,32 +73,40 @@ def upgrade_packages_index(): print("==============================> Env %s update done \n" % filename) -def upgrade_env_script(): +def upgrade_env_script(env_version): """Update env function scripts.""" - print("Begin to upgrade env scripts.") - env_root = Import('env_root') - env_kconfig_path = os.path.join(env_root, r'tools\scripts\cmds') - env_config_file = os.path.join(env_kconfig_path, '.config') - - if need_using_mirror_download(env_config_file): - get_package_url, get_ver_sha = get_url_from_mirror_server('env', 'latest') - - if get_package_url is not None: - env_scripts_repo = get_package_url - else: - print("Failed to get url from mirror server. Using default url.") - env_scripts_repo = 'https://gitee.com/RT-Thread-Mirror/env.git' + if env_version == 'RT-Thread packages v1.2.1': + print('current version: '+env_version) + print('Due to the version compatibility between python2 and python3,'\ + 'the current version does not support automatic upgrade. Please '\ + 'go to the official website (https://www.rt-thread.org/page/downl'\ + 'oad.html) to download the latest version of env.') + return else: - env_scripts_repo = 'https://github.com/RT-Thread/env.git' + print("Begin to upgrade env scripts.") + env_root = Import('env_root') + env_kconfig_path = os.path.join(env_root, r'tools\scripts\cmds') + env_config_file = os.path.join(env_kconfig_path, '.config') + + if need_using_mirror_download(env_config_file): + get_package_url, get_ver_sha = get_url_from_mirror_server('env', 'latest') + + if get_package_url is not None: + env_scripts_repo = get_package_url + else: + print("Failed to get url from mirror server. Using default url.") + env_scripts_repo = 'https://gitee.com/RT-Thread-Mirror/env.git' + else: + env_scripts_repo = 'https://github.com/RT-Thread/env.git' - env_scripts_root = os.path.join(env_root, 'tools', 'scripts') - git_pull_repo(env_scripts_root, env_scripts_repo) - print("==============================> Env scripts upgrade done \n") + env_scripts_root = os.path.join(env_root, 'tools', 'scripts') + git_pull_repo(env_scripts_root, env_scripts_repo) + print("==============================> Env scripts upgrade done \n") -def package_upgrade(): +def package_upgrade(env_version): """Update the package repository directory and env function scripts.""" upgrade_packages_index() - upgrade_env_script() + upgrade_env_script(env_version) diff --git a/env.py b/env.py index 0965d29b..043b8a92 100644 --- a/env.py +++ b/env.py @@ -34,7 +34,7 @@ from cmds import * from vars import Export -__version__ = 'RT-Thread packages v1.2.0' +__version__ = 'RT-Thread packages v1.2.1' def init_argparse(): From 80cffa2e5d03ba4def3b5a81b8e1945bec6d431b Mon Sep 17 00:00:00 2001 From: wugensheng <82647680+wugensheng-code@users.noreply.github.com> Date: Thu, 24 Feb 2022 10:51:10 +0800 Subject: [PATCH 2/3] [add]:package_upgrade_force --- cmds/cmd_package/__init__.py | 10 +++++++++- cmds/cmd_package/cmd_package_upgrade.py | 10 +++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cmds/cmd_package/__init__.py b/cmds/cmd_package/__init__.py index 82b17551..b6876bde 100644 --- a/cmds/cmd_package/__init__.py +++ b/cmds/cmd_package/__init__.py @@ -47,7 +47,9 @@ def run_env_cmd(args): elif args.list_packages: list_packages() elif args.package_upgrade: - package_upgrade(__version__) + package_upgrade() + elif args.package_upgrade_force: + package_upgrade(force_upgrade=True) elif args.package_print_env: package_print_env() else: @@ -71,6 +73,12 @@ def add_parser(sub): default=False, dest='package_update') + parser.add_argument('--force-upgrade', + help='force upgrade packages, install or remove the packages by your settings in menuconfig', + action='store_true', + default=False, + dest='package_upgrade_force') + parser.add_argument('--list', help='list target packages', action='store_true', diff --git a/cmds/cmd_package/cmd_package_upgrade.py b/cmds/cmd_package/cmd_package_upgrade.py index dd543cc8..c119cdc9 100644 --- a/cmds/cmd_package/cmd_package_upgrade.py +++ b/cmds/cmd_package/cmd_package_upgrade.py @@ -29,7 +29,7 @@ from .cmd_package_update import need_using_mirror_download -def upgrade_packages_index(): +def upgrade_packages_index(force_upgrade=False): """Update the package repository index.""" env_root = Import('env_root') @@ -51,6 +51,10 @@ def upgrade_packages_index(): packages_root = pkgs_root pkgs_path = os.path.join(packages_root, 'packages') + if force_upgrade: + os.system('git fetch --all') + os.system('git reset --hard origin/master') + if not os.path.isdir(pkgs_path): cmd = 'git clone ' + git_repo + ' ' + pkgs_path os.system(cmd) @@ -105,8 +109,8 @@ def upgrade_env_script(env_version): print("==============================> Env scripts upgrade done \n") -def package_upgrade(env_version): +def package_upgrade(env_version, force_upgrade=False): """Update the package repository directory and env function scripts.""" - upgrade_packages_index() + upgrade_packages_index(force_upgrade=force_upgrade) upgrade_env_script(env_version) From 3649ad06e9928519b6f7adae719ec86903580f90 Mon Sep 17 00:00:00 2001 From: wugensheng <82647680+wugensheng-code@users.noreply.github.com> Date: Thu, 24 Feb 2022 11:54:04 +0800 Subject: [PATCH 3/3] Fix working path for force_upgrade --- cmds/cmd_package/cmd_package_upgrade.py | 58 ++++++++++++------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/cmds/cmd_package/cmd_package_upgrade.py b/cmds/cmd_package/cmd_package_upgrade.py index c119cdc9..c2b1ed79 100644 --- a/cmds/cmd_package/cmd_package_upgrade.py +++ b/cmds/cmd_package/cmd_package_upgrade.py @@ -51,15 +51,19 @@ def upgrade_packages_index(force_upgrade=False): packages_root = pkgs_root pkgs_path = os.path.join(packages_root, 'packages') - if force_upgrade: - os.system('git fetch --all') - os.system('git reset --hard origin/master') + if not os.path.isdir(pkgs_path): cmd = 'git clone ' + git_repo + ' ' + pkgs_path os.system(cmd) print("upgrade from :%s" % (git_repo.encode("utf-8"))) else: + if force_upgrade: + cwd = os.getcwd() + os.chdir(pkgs_path) + os.system('git fetch --all') + os.system('git reset --hard origin/master') + os.chdir(cwd) print("Begin to upgrade env packages.") git_pull_repo(pkgs_path, git_repo) print("==============================> Env packages upgrade done \n") @@ -77,40 +81,32 @@ def upgrade_packages_index(force_upgrade=False): print("==============================> Env %s update done \n" % filename) -def upgrade_env_script(env_version): +def upgrade_env_script(): """Update env function scripts.""" - if env_version == 'RT-Thread packages v1.2.1': - print('current version: '+env_version) - print('Due to the version compatibility between python2 and python3,'\ - 'the current version does not support automatic upgrade. Please '\ - 'go to the official website (https://www.rt-thread.org/page/downl'\ - 'oad.html) to download the latest version of env.') - return - else: - print("Begin to upgrade env scripts.") - env_root = Import('env_root') - env_kconfig_path = os.path.join(env_root, r'tools\scripts\cmds') - env_config_file = os.path.join(env_kconfig_path, '.config') - - if need_using_mirror_download(env_config_file): - get_package_url, get_ver_sha = get_url_from_mirror_server('env', 'latest') - - if get_package_url is not None: - env_scripts_repo = get_package_url - else: - print("Failed to get url from mirror server. Using default url.") - env_scripts_repo = 'https://gitee.com/RT-Thread-Mirror/env.git' + print("Begin to upgrade env scripts.") + env_root = Import('env_root') + env_kconfig_path = os.path.join(env_root, r'tools\scripts\cmds') + env_config_file = os.path.join(env_kconfig_path, '.config') + + if need_using_mirror_download(env_config_file): + get_package_url, get_ver_sha = get_url_from_mirror_server('env', 'latest') + + if get_package_url is not None: + env_scripts_repo = get_package_url else: - env_scripts_repo = 'https://github.com/RT-Thread/env.git' + print("Failed to get url from mirror server. Using default url.") + env_scripts_repo = 'https://gitee.com/RT-Thread-Mirror/env.git' + else: + env_scripts_repo = 'https://github.com/RT-Thread/env.git' - env_scripts_root = os.path.join(env_root, 'tools', 'scripts') - git_pull_repo(env_scripts_root, env_scripts_repo) - print("==============================> Env scripts upgrade done \n") + env_scripts_root = os.path.join(env_root, 'tools', 'scripts') + git_pull_repo(env_scripts_root, env_scripts_repo) + print("==============================> Env scripts upgrade done \n") -def package_upgrade(env_version, force_upgrade=False): +def package_upgrade(force_upgrade=False): """Update the package repository directory and env function scripts.""" upgrade_packages_index(force_upgrade=force_upgrade) - upgrade_env_script(env_version) + upgrade_env_script()