def open_log_file(self): current_item = self.backups_tree_widget.currentItem() if current_item is None: return backup_name = current_item.whatsThis(0) if sys.platform == "darwin": subprocess.call(["open", get_log_file_path(backup_name)]) else: webbrowser.open(get_log_file_path(backup_name))
def run(self): while not self.exit: if self.backup is None or not os.path.exists( get_log_file_path(self.backup.name)): time.sleep(0.01) continue self.reset = False with open(get_log_file_path(self.backup.name), "r") as f: f.seek(0, 2) while not self.reset: line = f.readline() if not line: time.sleep(0.01) continue self.updated.emit(line)
def __init__(self, backup, item, debug=False): QThread.__init__(self) self.backup = backup self.item = item try: self.repo = Repo( Utils.get_backend(backup), callback=lambda message: self.updated.emit(self.item, message), thread_count=backup.thread_count, compression_level=backup.compression_level, logger=setup_logger(self.backup.name, get_log_file_path(self.backup.name), logging.DEBUG if debug else logging.INFO)) except Exception as e: print(e) self.error.emit(e)
def __init__(self, backup, snapshot_id, restore_dir, paths, debug=False): QThread.__init__(self) self.backup = backup self.snapshot_id = snapshot_id self.restore_dir = restore_dir self.paths = paths try: self.repo = Repo(Utils.get_backend(backup), callback=self.updated.emit, thread_count=self.backup.thread_count, compression_level=self.backup.compression_level, logger=setup_logger( backup.name, get_log_file_path(backup.name), logging.DEBUG if debug else logging.INFO)) except Exception as e: self.error.emit(e)
def run(self, lines=LINES, buffer=BUFFER): self.started.emit() lines_found = [] try: with open(get_log_file_path(self.backup_name), "r") as f: block_counter = -1 while len(lines_found) < lines: try: f.seek(block_counter * buffer, os.SEEK_END) except IOError: f.seek(0) lines_found = f.readlines() break lines_found = f.readlines() block_counter -= 1 except FileNotFoundError: pass finally: self.result.emit(lines_found[-lines:])