def upgrade(self, *e): if not vsu.is_connected_to_internet(): vsu.Message('sorry, not connected to internet...', dursec=2); return ms1 = vsu.Message('finding upgrade strategies', tkroot=self.esono.tkroot) dir1 = self.esono.pathdir_esonoclaste if vsu.is_in_git_repo(dir1): if vsu.is_in_git_readonly_repo(dir1): vsu.gitpull(dir1) ms1.quit() ms2 = vsu.Message('read-only git repo : upgrading with git', dursec=2) relaunch() else: ms1.quit() ms2 = vsu.Message('upgrading canceled : this is a read/write git repo', dursec=2) return tarname = vsu.get_git_tar_name('esonoclaste', 'vrx') if tarname in os.listdir(dir1): ms1.quit(); vsu.Message('nothing to update', dursec=2);return def percent(percent): m.set(float(percent)/100.) ms1.quit() m = vsu.ProgressBar('UPGRADING', 'Downloading...', self.esono.tkroot) # get tar file os.chdir(dir1) vsu.get_git_tar('esonoclaste', 'vrx', tarname , percent) m.quit() # WATCH OUT extract tar file on place!!! tf = tarfile.open(tarname) members = tf.getmembers() root = os.path.basename(members[0].path) for member in members: member.path = member.path.replace(root,'.') tf.extract(member,'.') tf.close()
#!/usr/bin/env python # -*- mode:python;coding:utf-8;python-indent:2 -*- import vsutils as vsu import tarfile if __name__ == '__main__': import os, sys curdir = os.path.join(os.path.abspath(os.path.split(sys.argv[0])[0])) def percent(percent): m.set(float(percent)/100.) # tkroot = vsu.tk.Tk(className='update') m = vsu.Meter(tkroot, relief='ridge', bd=3) m.pack(fill='x') m.set(0.0, 'Downloading...') tarname = '/tmp/engrenages.tar.gz' if vsu.is_connected_to_internet(): vsu.getgittar('engrenages_client', 'vrx', tarname , percent) tf = tarfile.open(tarname) members = tf.getmembers() root = os.path.basename(members[0].path) for member in members: member.path = member.path.replace(root,'.') tf.extract(member,'.') tf.close() tkroot.destroy() tkroot.mainloop()