def extract(download): """ Extract either a .zip or a .tar.gz file into the user's home folder, backs up the current program directory on Windows that contains the latest Whyteboard source code and resources """ extracted_location = os.path.join(get_home_dir(), "whyteboard-" + download.version) backup_direcctory = os.path.join(get_home_dir(), "backup", meta.version) program_directory = get_path() archive = download.filesystem_path() logger.debug("Extracting archive file") logger.debug("Backing up current program [%s] to [%s]", program_directory, backup_direcctory) distutils.dir_util.copy_tree(program_directory, backup_direcctory) if is_exe(): os.rename(sys.argv[0], "whyteboard-tmp.exe") _file = zipfile.ZipFile(archive) else: _file = tarfile.open(archive) _file.extractall(get_home_dir()) _file.close() logger.debug("Moving extracted file directory [%s] into running program directory [%s]", extracted_location, program_directory) distutils.dir_util.copy_tree(extracted_location, program_directory) logger.debug("Cleaning up.") distutils.dir_util.remove_tree(extracted_location) os.remove(archive)
def on_new_win(self, event=None): program = (u'python', os.path.abspath(sys.argv[0])) if is_exe(): program = os.path.abspath(sys.argv[0]) logger.debug("Loading new application instance: [%s]", program) subprocess.Popen(program)
def raw_filesize(self): return self.executable_size if is_exe() else self.source_size
def filename(self): return self.executable_filename if is_exe() else self.source_filename
def filetype(self): return u"zip" if is_exe() else u"tar.gz"
def delete_temp_update_files(self): tmp_file = os.path.join(get_path(), u"whyteboard-tmp.exe") if is_exe() and os.path.exists(tmp_file): logger.info("Removing backup EXE [%s] after performing an update", tmp_file) os.remove(tmp_file)