#!python

import sys
import os
from lib import CFScanner, PASS, FAIL


class bcolors(set):
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'


if __name__ == "__main__":

    if len(sys.argv) != 2 or sys.argv[-1] == '-h' or sys.argv[-1] == '--help':
        basename = os.path.basename(sys.argv[0])
        sys.stderr.write("syntax: %s <cf_api_target>\nusage example: cfscan http://api.local.pcfdev.io\n" % basename)
        exit(1)

    scanner = CFScanner(sys.argv[1])

    print '[+] Generating report for %s\n' % scanner.target
    for test, results in scanner.scan():
        print '\t[+] %s:' % test.desc

        for status, msg in results:
            status_str = '[%s%s%s]' % (bcolors.OKGREEN if status == PASS else bcolors.FAIL,
                                       'PASS' if status == PASS else 'FAIL', bcolors.ENDC)
            print '\t\t%s %s' % (status_str, msg)
        sys.stdout.write('\n')

    exit(0)
