#!/usr/bin/env python3
# -*- coding: utf-8 -*-

'''
This script uses the Manager class to update a simulations folder.
'''

import argparse

from hateno.ui import UI
from hateno.folder import Folder
from hateno.manager import Manager

parser = argparse.ArgumentParser(description = 'Update a simulations folder.')

parser.add_argument('folder_path', type = str, help = 'path to the folder to update')

args = parser.parse_args()

folder = Folder(args.folder_path)
manager = Manager(folder)
ui = UI()

infos_line = ui.addTextLine('Checking the simulations list…')
progress_bar = ui.addProgressBar(manager.getSimulationsNumber())

manager.checkSimulationsList(callback = lambda : ui.updateProgressBar(progress_bar))

ui.removeProgressBar(progress_bar)
ui.replaceTextLine(infos_line, 'Simulations list checked')

ui.replaceTextLine(infos_line, 'Updating the simulations list…')
progress_bar = ui.addProgressBar(manager.getSimulationsNumber())

manager.update(callback = lambda : ui.updateProgressBar(progress_bar))

ui.removeProgressBar(progress_bar)
ui.replaceTextLine(infos_line, 'Simulations list updated')
