@@ -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
533558def 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+
626665def 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 ("\n Start 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