#!/usr/bin/env python

"""Script to execute linter"""

# import optparse
# from os.path import dirname
import sys

from linter.rules.undefinedVar import UndefinedVariable
from linter.runner import Runner
# from linter.version import __version__


def main(args):
    obj = Runner(sys.argv, (UndefinedVariable,))
    return obj.run()

    # parser = optparse.OptionParser(
    #     "%prog <%prog options> -- <ansible-playbook options>", version="%prog " + __version__)
    # default_rulesdir = dirname(rules.__file__)
    #
    # parser.add_option(
    #     "-L", dest="listrules", default=False, action="store_true", help="List all the rules")
    # parser.add_option(
    #     "-r", action="append", dest="rulesdir", default=[], type="str",
    #     help="Specify one or more rules directories using one or more -r arguments. Any -r flags "
    #          "override the default rules in %s, unless -R is also used." % default_rulesdir)
    # parser.add_option(
    #     "-R", action="store_true", default=False, dest="use_default_rules",
    #     help="Use default rules %s in addition to any extra rules directories specified with -r. "
    #          "There is no need to specify this if no -r flags are used" % default_rulesdir)
    # parser.add_option(
    #     "-t", dest="tags", default=[], help="Only check rules whose id/tags match these values")
    # parser.add_option(
    #     "-x", dest="skip_list", default=[],
    #     help="Only check rules whose id/tags do not match these values")
    # parser.add_option(
    #     "--exclude", dest="exclude_paths", action="append",
    #     help="Path to directories or files to skip. This option is repeatable.")
    # options, args = parser.parse_args(args)
    #
    # if len(args) == 0 and not options.listrules:
    #     parser.print_help(file=sys.stderr)
    #     return 1
    #
    # if options.use_default_rules:
    #     rulesdirs = options.rulesdir + default_rulesdir
    # else:
    #     rulesdirs = options.rulesdir or default_rulesdir
    #
    # rules = RulesCollection()
    # for rulesdir in rulesdirs:
    #     rules.extend(RulesCollection.create_from_directory(rulesdir))
    #
    # if options.listrules:
    #     print(rules)
    #     return 0
    #
    # if isinstance(options.tags, basestring):
    #     options.tags = options.tags.split(",")
    # if isinstance(options.skip_list, basestring):
    #     options.skip_list = options.skip_list.split(",")
    #
    # playbooks = set(args)
    # runner = ansiblelint.Runner(rules, playbooks, options.tags,
    #                             options.skip_list, options.exclude_paths)
    # matches = runner.run()
    #
    # for match in matches:
    #     print(formatter.format(match))
    #
    # if len(matches):
    #     return 2
    # else:
    #     return 0


if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))
