mirror of
https://github.com/RedDeadDepresso/KKAFIO.git
synced 2025-12-22 09:20:02 +00:00
67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
import sys
|
|
import traceback
|
|
try:
|
|
with open('traceback.log', 'w') as f:
|
|
pass
|
|
|
|
from util.config import Config
|
|
from util.logger import logger
|
|
from util.file_manager import FileManager
|
|
from modules.install_chara import InstallChara
|
|
from modules.remove_chara import RemoveChara
|
|
from modules.fc_kks import FilterConvertKKS
|
|
from modules.create_backup import CreateBackup
|
|
|
|
|
|
class Script:
|
|
def __init__(self, config, file_manager):
|
|
"""Initializes the primary azurlane-auto instance with the passed in
|
|
Config instance;
|
|
|
|
Args:
|
|
config (Config): BAAuto Config instance
|
|
"""
|
|
self.config = config
|
|
self.file_manager = file_manager
|
|
self.task_to_module = {
|
|
'CreateBackup': CreateBackup,
|
|
'FilterConvertKKS': FilterConvertKKS,
|
|
'InstallChara': InstallChara,
|
|
'RemoveChara': RemoveChara,
|
|
}
|
|
|
|
def run(self):
|
|
for task, module in self.task_to_module.items():
|
|
if not self.config.config_data[task]["Enable"]:
|
|
continue
|
|
|
|
logger.info("SCRIPT", f'Start Task: {task}')
|
|
try:
|
|
module(self.config, self.file_manager).run()
|
|
except:
|
|
logger.error("SCRIPT", f'Task error: {task}. For more info, check the traceback.log file.')
|
|
self.write_traceback(task)
|
|
sys.exit(1)
|
|
sys.exit(0)
|
|
|
|
def write_traceback(self, task):
|
|
with open('traceback.log', 'a') as f:
|
|
f.write(f'[{task}]\n')
|
|
traceback.print_exc(None, f, True)
|
|
f.write('\n')
|
|
|
|
except:
|
|
print(f'[ERROR] Script Initialisation Error. For more info, check the traceback.log file.')
|
|
with open('traceback.log', 'w') as f:
|
|
f.write(f'Script Initialisation Error\n')
|
|
traceback.print_exc(None, f, True)
|
|
f.write('\n')
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
config = Config('app/config/config.json')
|
|
file_manager = FileManager(config)
|
|
script = Script(config, file_manager)
|
|
script.run()
|