def update_to_latest_version_given_filename(self, temp_filename): filename = self.__get_filename_in_temp_path(temp_filename) #assumes we want to put the tarfile in parent of current directory logging.debug(commands.getoutput('tar xzvf %s' % temp_filename)) logging.debug( commands.getoutput('mv %s %s' % (filename, os.path.abspath(os.path.pardir)))) #TODO: jperla: why need to remove when already moved??? logging.debug(commands.getoutput('rm -rf %s' % filename)) logging.debug(commands.getoutput('rm -f %s' % temp_filename)) #wow that's ugly, there's got to be a better way! file_to_evaluate = '%s' % (os.path.pardir + '/' + filename) logging.debug('evaluating %s' % file_to_evaluate) sys.path.insert(0, file_to_evaluate) #TODO: jperla: fix this terminology from selfupdater import selfupdater #TODO: jperla: i can't believe that this worked! new_update_succeeded = partial( self.update_succeeded, os.getcwd(), os.path.abspath(os.path.pardir) + '/' + filename) new_update_failed = partial( self.update_failed, os.path.abspath(os.path.pardir) + '/' + filename) selfupdater.update_success = new_update_succeeded selfupdater.update_failure = new_update_failed #TODO: jperla: run this in new thread? selfupdater.run()
def update_to_latest_version_given_filename(self, temp_filename): filename = self.__get_filename_in_temp_path(temp_filename) #assumes we want to put the tarfile in parent of current directory logging.debug(commands.getoutput('tar xzvf %s' % temp_filename)) logging.debug(commands.getoutput('mv %s %s' % (filename, os.path.abspath(os.path.pardir)))) #TODO: jperla: why need to remove when already moved??? logging.debug(commands.getoutput('rm -rf %s' % filename)) logging.debug(commands.getoutput('rm -f %s' % temp_filename)) #wow that's ugly, there's got to be a better way! file_to_evaluate = '%s' % (os.path.pardir+'/'+filename) logging.debug('evaluating %s' % file_to_evaluate) sys.path.insert(0, file_to_evaluate) #TODO: jperla: fix this terminology from selfupdater import selfupdater #TODO: jperla: i can't believe that this worked! new_update_succeeded = partial(self.update_succeeded, os.getcwd(), os.path.abspath(os.path.pardir)+'/'+filename) new_update_failed = partial(self.update_failed, os.path.abspath(os.path.pardir)+'/'+filename) selfupdater.update_success = new_update_succeeded selfupdater.update_failure = new_update_failed #TODO: jperla: run this in new thread? selfupdater.run()
def __watch_progress(self, total_to_download, total_downloaded, total_to_upload, total_uploaded): self.do_while_downloading(total_to_download, total_downloaded) class SimpleSelfUpdater(SelfUpdater): def __init__(self): version = '1.0' is_new_version_url = 'http://localhost/version_test.txt' SelfUpdater.__init__(self, version, is_new_version_url) def run_implementation(self): while True: print self.version try: self.update_if_newer_version() except Exception, e: logging.error('Exception: %s' % e) self.executes_properly() def do_while_downloading(self, total_to_download, total_downloaded): print self._percentage_progress(total_to_download, total_downloaded) selfupdater = SimpleSelfUpdater() #selfupdater.run() if __name__ == '__main__': selfupdater.run()
total_downloaded, total_to_upload, total_uploaded): self.do_while_downloading(total_to_download, total_downloaded) class SimpleSelfUpdater(SelfUpdater): def __init__(self): version = '1.0' is_new_version_url = 'http://localhost/version_test.txt' SelfUpdater.__init__(self, version, is_new_version_url) def run_implementation(self): while True: print self.version try: self.update_if_newer_version() except Exception, e: logging.error('Exception: %s' % e) self.executes_properly() def do_while_downloading(self, total_to_download, total_downloaded): print self._percentage_progress(total_to_download, total_downloaded) selfupdater = SimpleSelfUpdater() #selfupdater.run() if __name__ == '__main__': selfupdater.run()