Skip to content

Commit 925a104

Browse files
committed
【添加】:pkgs_delete_error_list.json 作为下载错误记录。 优化文档格式
1 parent a948cc6 commit 925a104

File tree

1 file changed

+67
-23
lines changed

1 file changed

+67
-23
lines changed

cmds/cmd_package.py

Lines changed: 67 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,11 @@ def pre_package_update():
489489
fp = open("pkgs.json", 'w')
490490
fp.write("[]")
491491
fp.close()
492+
493+
fp = open("pkgs_delete_error_list.json", 'w')
494+
fp.write("[]")
495+
fp.close()
496+
492497
os.chdir(bsp_root)
493498

494499
# prepare target packages file
@@ -527,7 +532,27 @@ def pre_package_update():
527532
with open(pkgs_fn, 'r') as f:
528533
oldpkgs = json.load(f)
529534

530-
return [oldpkgs, newpkgs, pkgs_fn, bsp_packages_path, dbsqlite_pathname]
535+
pkgs_error_list_fn = os.path.join(
536+
bsp_packages_path, 'pkgs_delete_error_list.json')
537+
538+
if not os.path.exists(pkgs_error_list_fn):
539+
print ("Maybe you delete the file pkgs_delete_error_list.json by mistake.")
540+
print ("Do you want to create a new pkgs_delete_error_list.json ?")
541+
rc = raw_input(
542+
'Press the Y Key to create a new pkgs_delete_error_list.json.')
543+
if rc == 'y' or rc == 'Y':
544+
os.chdir(bsp_packages_path)
545+
fp = open("pkgs_delete_error_list.json", 'w')
546+
fp.write("[]")
547+
fp.close()
548+
os.chdir(bsp_root)
549+
print ("Create a new file pkgs_delete_error_list.json done.")
550+
551+
# Reading data back from pkgs_delete_error_list.json
552+
with open(pkgs_error_list_fn, 'r') as f:
553+
pkgs_delete_error_list = json.load(f)
554+
555+
return [oldpkgs, newpkgs, pkgs_delete_error_list, pkgs_fn, bsp_packages_path, dbsqlite_pathname]
531556

532557

533558
def error_packages_handle(error_packages_list, read_back_pkgs_json, pkgs_fn):
@@ -557,7 +582,7 @@ def error_packages_handle(error_packages_list, read_back_pkgs_json, pkgs_fn):
557582

558583
if len(error_packages_redownload_error_list):
559584
print("%s" % error_packages_redownload_error_list)
560-
print ("Packages:%s,%s redownloed error,you need to use 'pkgs --update' command again to redownload them." %
585+
print ("Packages:%s,%s redownloed error,you need to use <pkgs --update> command again to redownload them." %
561586
pkg['name'], pkg['ver'])
562587
write_back_pkgs_json = sub_list(
563588
read_back_pkgs_json, error_packages_redownload_error_list)
@@ -623,6 +648,20 @@ def cri(self, message):
623648
self.logger.critical(message)
624649

625650

651+
def get_package_remove_path(pkg, bsp_packages_path):
652+
dirpath = pkg['path']
653+
ver = pkg['ver']
654+
if dirpath[0] == '/' or dirpath[0] == '\\':
655+
dirpath = dirpath[1:]
656+
dirpath = os.path.basename(dirpath.replace('/', '\\'))
657+
# print "basename:",os.path.basename(dirpath)
658+
removepath = os.path.join(bsp_packages_path, dirpath)
659+
660+
# Handles the deletion of git repository folders with version Numbers
661+
removepath_ver = get_pkg_folder_by_orign_path(removepath, ver)
662+
return removepath_ver
663+
664+
626665
def package_update(isDeleteOld=False):
627666
"""Update env's packages.
628667
@@ -645,39 +684,45 @@ def package_update(isDeleteOld=False):
645684
sys_value = pre_package_update()
646685
oldpkgs = sys_value[0]
647686
newpkgs = sys_value[1]
648-
pkgs_fn = sys_value[2]
649-
bsp_packages_path = sys_value[3]
650-
dbsqlite_pathname = sys_value[4]
687+
pkgs_delete_error_list = sys_value[2]
688+
pkgs_fn = sys_value[3]
689+
bsp_packages_path = sys_value[4]
690+
dbsqlite_pathname = sys_value[5]
651691

652692
# print "newpkgs:",newpkgs
653693
# print "oldpkgs:",oldpkgs
654694

655695
pkgs_update_log.info(
656696
'[Line: %d][Message : Begin to remove packages]' % sys._getframe().f_lineno)
657697

698+
pkgs_update_log.info(
699+
'[Line: %d][Message : oldpkgs: %s ]' % (sys._getframe().f_lineno, oldpkgs))
700+
701+
pkgs_update_log.info(
702+
'[Line: %d][Message : newpkgs: %s ]' % (sys._getframe().f_lineno, newpkgs))
703+
704+
pkgs_update_log.info(
705+
'[Line: %d][Message : pkgs_delete_error_list: %s ]' % (sys._getframe().f_lineno, pkgs_delete_error_list))
706+
707+
if len(pkgs_delete_error_list):
708+
print(pkgs_delete_error_list)
709+
return
710+
658711
# 1.in old ,not in new : Software packages that need to be removed.
659712
casedelete = sub_list(oldpkgs, newpkgs)
660713
pkgs_delete_fail_list = []
661714

662715
for pkg in casedelete:
663-
dirpath = pkg['path']
664-
ver = pkg['ver']
665-
if dirpath[0] == '/' or dirpath[0] == '\\':
666-
dirpath = dirpath[1:]
667-
dirpath = os.path.basename(dirpath.replace('/', '\\'))
668-
# print "basename:",os.path.basename(dirpath)
669-
removepath = os.path.join(bsp_packages_path, dirpath)
670716

671-
# Handles the deletion of git repository folders with version Numbers
672-
git_removepath = get_pkg_folder_by_orign_path(removepath, ver)
673-
removepath_git = os.path.join(git_removepath, '.git')
674-
# print "floder to delete",removepath
717+
removepath_ver = get_package_remove_path(pkg, bsp_packages_path)
718+
removepath_git = os.path.join(removepath_ver, '.git')
719+
675720
# print "removepath_git to delete",removepath_git
676721

677722
# Delete. Git directory.
678723

679-
if os.path.isdir(git_removepath) and os.path.isdir(removepath_git):
680-
gitdir = git_removepath
724+
if os.path.isdir(removepath_ver) and os.path.isdir(removepath_git):
725+
gitdir = removepath_ver
681726

682727
print ("\nStart to remove %s, please wait...\n" % gitdir)
683728
if isDeleteOld:
@@ -698,18 +743,17 @@ def package_update(isDeleteOld=False):
698743
print('Error message:%s%s. error.message: %s\n\t' %
699744
("Delete folder failed: ", gitdir, e.message))
700745
else:
701-
removepath = get_pkg_folder_by_orign_path(removepath, ver)
702-
print("Start to remove %s, please wait...\n" % removepath)
746+
print("Start to remove %s, please wait...\n" % removepath_ver)
703747

704748
try:
705-
pkgsdb.deletepackdir(removepath, dbsqlite_pathname)
749+
pkgsdb.deletepackdir(removepath_ver, dbsqlite_pathname)
706750
except Exception, e:
707751
pkgs_delete_fail_list.append(pkg)
708752
print('Error message:\n%s %s. %s \n\t' % (
709-
"Delete folder failed, please delete the folder manually", removepath, e.message))
753+
"Delete folder failed, please delete the folder manually", removepath_ver, e.message))
710754

711755
if len(pkgs_delete_fail_list):
712-
print("Package download failed pkgs_delete_fail_list: %s \n" %
756+
print("Packages deletion failed list: %s \n" %
713757
pkgs_delete_fail_list)
714758
return
715759

0 commit comments

Comments
 (0)