diff --git a/cmds/cmd_package/__init__.py b/cmds/cmd_package/__init__.py index 68361a40..b6876bde 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 @@ -46,6 +48,8 @@ def run_env_cmd(args): list_packages() elif args.package_upgrade: package_upgrade() + elif args.package_upgrade_force: + package_upgrade(force_upgrade=True) elif args.package_print_env: package_print_env() else: @@ -69,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 b9e3f413..c2b1ed79 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,11 +51,19 @@ def upgrade_packages_index(): packages_root = pkgs_root pkgs_path = os.path.join(packages_root, 'packages') + + 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") @@ -97,8 +105,8 @@ def upgrade_env_script(): print("==============================> Env scripts upgrade done \n") -def package_upgrade(): +def package_upgrade(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() 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():