#!/usr/bin/env python3
from compose_diff import ComposeDiff


if __name__ == '__main__':

    import argparse
    import sys

    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--versions', action='store_const', const=True,
        help='diffs the image versions', default=False)
    parser.add_argument(
        '--instances', action='store_const', const=True,
        help='diffs the instances', default=False)
    parser.add_argument(
        '--filter', action='append',
        help='just consider specific items', default=None)
    parser.add_argument(
        '--format', action='store',
        help='format (csv,markdown)', default='markdown')
    parser.add_argument('files', nargs=argparse.REMAINDER)
    args = parser.parse_args()

    if args.versions or args.instances:
        if len(args.files) != 2:
            print('please diff exactly two files. You provided {0} files.'.format(len(args.files)))
            sys.exit(1)

        old, new = args.files[0], args.files[1]

        diff = ComposeDiff(
            filter=args.filter,
            diff_versions=args.versions,
            diff_instances=args.instances,
        )
        print(diff.format(diff.diff(old, new), format=args.format))
    else:
        parser.print_help()
