from zrb.task.recurring_task import RecurringTask
from zrb.task.path_watcher import PathWatcher
from zrb.task_input.str_input import StrInput
from zrb.runner import runner
from zrb.builtin.helper.reccuring_action import create_recurring_action


watch_changes = RecurringTask(
    name='watch-changes',
    icon='🕵️',
    color='yellow',
    description='Watch changes and show message/run command',
    inputs=[
        StrInput(
            name='pattern',
            default='*.*',
            prompt='File pattern',
            description='File pattern to be watched'
        ),
        StrInput(
            name='ignored-pattern',
            default='',
            prompt='Ignored file pattern',
            description='Ignored file pattern'
        ),
    ],
    triggers=[
        PathWatcher(
            name='watch-path',
            color='cyan',
            icon='👀',
            path='{{input.pattern}}',
            ignored_path='{{input.ignored_pattern}}'
        )
    ],
    task=create_recurring_action(
        notif_title='Watch',
        trigger_caption='File changes',
        trigger_xcom_key='watch-path.file'
    )
)
runner.register(watch_changes)
