#!/usr/bin/env python
import argparse
import os
import os.path
import sortest

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument("-v", "--verbose", action="store_true")
    group.add_argument("-q", "--quiet", action="store_true")
    parser.add_argument("-f", "--exclude-file", action="append")
    parser.add_argument("-d", "--exclude-dir", action="append")
    parser.add_argument("-n", "--dry-run", action="store_true")
    parser.add_argument("rootdir", nargs='*', default=[os.getcwd()],
                        help=("Directory(ies) to search in and to perform tests "
                              "on (repeatable; default=current working directory)"))
    args = parser.parse_args()
    excluded_files = ["setup.py"] + (args.exclude_file
                                     if args.exclude_file else [])
    excluded_dirs = ["bin", '.svn', '.git'] + (args.exclude_dir
                                               if args.exclude_dir else [])
    if args.quiet:
        verbosity = 0
    elif args.verbose:
        verbosity = 2
    else:
        verbosity = 1
    try:
        sortest.continuously_test([os.path.abspath(p)
                                   for p in args.rootdir], excluded_files,
                                  excluded_dirs, verbose_level=verbosity,
                                  dry_run=args.dry_run)
    except KeyboardInterrupt:
        print
