add list and list_leveldb_key

This commit is contained in:
2021-09-07 07:48:07 +08:00
parent 829b2f9bc2
commit 5db7793fb1
2 changed files with 42 additions and 7 deletions

View File

@@ -7,7 +7,7 @@ from game_backuper.config import (
)
from game_backuper.cml import Opts, OptAction
from threading import Thread
from os.path import exists, join
from os.path import exists, join, isdir
from os import mkdir, remove
from game_backuper.file import new_file, copy_file, File, mkdir_for_file
from game_backuper.filetype import FileType
@@ -46,7 +46,7 @@ class BackupTask(Thread):
elif isinstance(f, ConfigLeveldb):
from game_backuper.leveldb import have_leveldb
if not have_leveldb:
raise ValueError('Leveldb is not supported.')
raise NotImplementedError('Leveldb is not supported.')
if not exists(f.full_path):
continue
from game_backuper.leveldb import (
@@ -93,9 +93,26 @@ class Backuper:
t = BackupTask(prog, self.db, self.conf)
self.tasks.append(t)
t.start()
elif self.opts.action == OptAction.LIST:
print(prog.name)
def run(self):
if self.opts.programs_list is None:
if self.opts.action == OptAction.LIST_LEVELDB_KEY:
from game_backuper.leveldb import have_leveldb
if not have_leveldb:
raise NotImplementedError('Leveldb is not supported.')
from game_backuper.leveldb import list_leveldb_entries
for db in self.opts.programs_list:
if exists(db):
if isdir(db):
print(f'Keys in "{db}":')
for i in list_leveldb_entries(db):
print(i)
else:
raise FileExistsError(f'"{db}" should be a directory.')
else:
raise FileNotFoundError(f'Can not find "{db}"')
elif self.opts.programs_list is None:
for prog in self.conf.progs:
self.deal_prog(prog)
else: