#!/usr/bin/env python
import json

from fire import Fire
from traxix.trixli.utils import index_path, match_in_file, compile_re


def _fytr(paths: list, patterns: list):
    for path in paths:
        match_in_file(compiled_re=patterns, max_len=100, path=path)


def fyt(command, *args, path=None):
    path = index_path(path)
    patterns = compile_re(regexps=args)

    try:
        data = json.load(open(path))
    except FileNotFoundError:
        print("No index found at", path)
        return

    result = data.get(command)
    if result:
        _fytr(paths=result, patterns=patterns)

    for key in data:
        if command in key:
            _fytr(paths=data[key], patterns=patterns)


if __name__ == "__main__":
    Fire(fyt)
