diff --git a/cmds/Kconfig b/cmds/Kconfig index ef51161..6b59928 100644 --- a/cmds/Kconfig +++ b/cmds/Kconfig @@ -4,6 +4,13 @@ config SYS_AUTO_UPDATE_PKGS bool "Auto update pkgs config" default y +config SYS_PKGS_CONFIRM_DELETE + bool "Confirm before deleting disabled git packages" + default n + help + Ask before deleting a git package folder after the package is disabled. + If disabled, the package folder is deleted directly. + choice prompt "Select download server" config SYS_DOWNLOAD_SERVER_AUTO @@ -57,4 +64,3 @@ config SYS_PKGS_USING_STATISTICS which is used to count the number of users endmenu - diff --git a/cmds/cmd_package/cmd_package_update.py b/cmds/cmd_package/cmd_package_update.py index 9197d06..59a1625 100644 --- a/cmds/cmd_package/cmd_package_update.py +++ b/cmds/cmd_package/cmd_package_update.py @@ -186,6 +186,11 @@ def is_user_mange_package(bsp_package_path, pkg): is_China_ip = None +def should_confirm_delete_disabled_git_package(): + env_config_file = os.path.join(Import('env_root'), 'tools', 'scripts', 'cmds', '.config') + return os.path.isfile(env_config_file) and find_bool_macro_in_config(env_config_file, 'SYS_PKGS_CONFIRM_DELETE') + + def need_using_mirror_download(): global is_China_ip @@ -793,9 +798,14 @@ def delete_git_package(pkg, remove_path_with_version, force_update, package_dele git_folder_to_remove = remove_path_with_version print("\nStart to remove %s \nplease wait..." % git_folder_to_remove.encode("utf-8")) - if force_update: - logging.info("package force update, Begin to remove package {0}".format(git_folder_to_remove)) + if force_update or not should_confirm_delete_disabled_git_package(): + if force_update: + logging.info("package force update, Begin to remove package {0}".format(git_folder_to_remove)) + else: + logging.info("package disabled, Begin to remove package {0}".format(git_folder_to_remove)) if not rm_package(git_folder_to_remove): + if not force_update: + package_delete_fail_list.append(pkg) print("Floder delete fail: %s" % git_folder_to_remove.encode("utf-8")) print("Please delete this folder manually.") else: