#!/usr/bin/python3
"""
Filter tests based on metadata and provided path and filter.
Usage: {0} path filter [path filter...]
Directories with no metadata present are silently ignored.
"""

from __future__ import unicode_literals

import fmf
import sys


def usage():
    """ Show usage message and exit """
    print(__doc__.format(sys.argv[0]))
    raise SystemExit(1)


if __name__ == "__main__":
    # Check for correct arguments
    pairs = sys.argv[1:]
    if len(pairs) < 2:
        usage()

    # Filter tests for each path-filter pair
    while pairs:
        try:
            path = pairs.pop(0).rstrip('/')
            filtr = pairs.pop(0)
        except IndexError:
            usage()

        try:
            tree = fmf.Tree(path)
        except fmf.utils.RootError:
            fmf.utils.info("No metadata found for '{0}'.".format(path))
            continue
        for node in tree.prune(keys=['test'], filters=[filtr]):
            # Skip disabled tests
            if node.data.get('disabled', False):
                continue
            print(path + (node.data.get('path') or node.name))
