Skip to content

Commit 077a540

Browse files
committed
【完善】:如果有删除失败的软件包,那么先处理失败软件包的删除,处理过后再进行下面的更新操作,如果处理失败则返回并提示错误
1 parent 925a104 commit 077a540

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

cmds/cmd_package.py

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,7 @@ def pre_package_update():
552552
with open(pkgs_error_list_fn, 'r') as f:
553553
pkgs_delete_error_list = json.load(f)
554554

555-
return [oldpkgs, newpkgs, pkgs_delete_error_list, pkgs_fn, bsp_packages_path, dbsqlite_pathname]
555+
return [oldpkgs, newpkgs, pkgs_delete_error_list, pkgs_fn, pkgs_error_list_fn, bsp_packages_path, dbsqlite_pathname]
556556

557557

558558
def error_packages_handle(error_packages_list, read_back_pkgs_json, pkgs_fn):
@@ -612,7 +612,7 @@ def rm_package(dir):
612612
os.system(cmd)
613613

614614
if os.path.isdir(dir):
615-
print ("Delete folder failed!!! Folder path: %s." % dir)
615+
print ("Error : Delete folder failed!!! Folder path: %s." % dir)
616616
return False
617617
else:
618618
print ("Folder has been removed.")
@@ -686,8 +686,9 @@ def package_update(isDeleteOld=False):
686686
newpkgs = sys_value[1]
687687
pkgs_delete_error_list = sys_value[2]
688688
pkgs_fn = sys_value[3]
689-
bsp_packages_path = sys_value[4]
690-
dbsqlite_pathname = sys_value[5]
689+
pkgs_error_list_fn = sys_value[4]
690+
bsp_packages_path = sys_value[5]
691+
dbsqlite_pathname = sys_value[6]
691692

692693
# print "newpkgs:",newpkgs
693694
# print "oldpkgs:",oldpkgs
@@ -705,8 +706,18 @@ def package_update(isDeleteOld=False):
705706
'[Line: %d][Message : pkgs_delete_error_list: %s ]' % (sys._getframe().f_lineno, pkgs_delete_error_list))
706707

707708
if len(pkgs_delete_error_list):
708-
print(pkgs_delete_error_list)
709-
return
709+
for error_package in pkgs_delete_error_list:
710+
removepath_ver = get_package_remove_path(
711+
error_package, bsp_packages_path)
712+
713+
if os.path.isdir(removepath_ver):
714+
print("\nError : Packages deletion failed list: %s" %
715+
error_package['name'])
716+
717+
if rm_package(removepath_ver) == False:
718+
print("Please delete the folder manually: %s \n" %
719+
removepath_ver)
720+
return
710721

711722
# 1.in old ,not in new : Software packages that need to be removed.
712723
casedelete = sub_list(oldpkgs, newpkgs)
@@ -755,7 +766,21 @@ def package_update(isDeleteOld=False):
755766
if len(pkgs_delete_fail_list):
756767
print("Packages deletion failed list: %s \n" %
757768
pkgs_delete_fail_list)
769+
770+
# write error messages
771+
772+
pkgs_file = file(pkgs_error_list_fn, 'w')
773+
pkgs_file.write(json.dumps(pkgs_delete_fail_list, indent=1))
774+
pkgs_file.close()
775+
758776
return
777+
else:
778+
779+
# write error messages
780+
781+
pkgs_file = file(pkgs_error_list_fn, 'w')
782+
pkgs_file.write(json.dumps(pkgs_delete_fail_list, indent=1))
783+
pkgs_file.close()
759784

760785
# 2.in old and in new
761786
#caseinoperation = and_list(newpkgs,oldpkgs)

0 commit comments

Comments
 (0)