Ejemplo n.º 1
0
    def update(self):
        self.pg = ProgBar("Updating...", False, "libs/images/", True)
        self.pg.addMessage("updating from " + self.version + " to " +
                           self.latest_version)
        cd = os.curdir
        f_names = os.listdir(cd)

        self.pg.startSubProcess(5.0, 2)
        if os.access("ref_list.dat", os.F_OK):
            os.remove("ref_list.dat")
        self.pg.incSub("Retrieving ref_list.dat..")
        self.updater.getRefreshList(self.latest_version)
        self.pg.incSub("ref_list.dat finished..")
        list_file = open("ref_list.dat")
        refresh_list = cPickle.load(list_file)
        list_file.close()

        self.pg.startSubProcess(10.0, len(refresh_list))
        for f in f_names:
            if f in refresh_list:
                self.pg.incSub("Deleted " + f)
                if os.path.isdir(cd + "/" + f):
                    shutil.rmtree(cd + "/" + f)
                else:
                    os.remove(cd + "/" + f)
            elif os.path.isdir(cd + "/" + f):
                f_names2 = os.listdir(cd + "/" + f)
                for f2 in f_names2:
                    tmp = f + "/" + f2
                    if tmp in refresh_list:
                        self.pg.incSub("Deleted " + f + "/" + f2)
                        if os.path.isdir(cd + "/" + f + "/" + f2):
                            shutil.rmtree(cd + "/" + f + "/" + f2)
                        else:
                            os.remove(cd + "/" + f + "/" + f2)
        self.pg.startSubProcess(80.0, 100)
        self.pg.addMessage("Downloading package.zip...")
        self.updater.getPackage(self.latest_version, self.pg)
        self.pg.addMessage("package.zip finished...")
        self.pg.startSubProcess(5.0, 2)
        self.pg.incSub("Extracting package.zip..")
        self.updater.extract()
        self.pg.incSub("package.zip extracted...")
        self.pg.addMessage("done...")

        self.pg.exit()
        self.root.destroy()