Example #1
0
def main(warn, folder, options=None):
    badFiles = None
    exitCode = 0
    if not folder:
        folder = sandbox.current.get_code_root()
    oldStdout = None
    sendEmail = xmail.hasDest(options)
    if sendEmail:
        oldStdout = sys.stdout
        sys.stdout = FakeFile()
    try:
        badFiles = check(folder, warn)
        if sendEmail:
            msg = sys.stdout.txt
            #print(msg)
            sys.stdout = oldStdout
            oldStdout = None
            xmail.sendmail(msg,
                           sender='Keyword Scanner <*****@*****.**>',
                           subject='svn:keywords scan on %s' %
                           metadata.get_friendly_name_for_path(folder),
                           options=options)
    finally:
        if oldStdout:
            sys.stdout = oldStdout
    return badFiles
Example #2
0
def main(warn, folder, options=None):
    badFiles = []
    exitCode = 0

    if not hasPep8():
        print("Warning: This machine does not have pep8 installed.")
        if sys.platform.startswith('linux'):
            print("    install it using: yum install python-pep8")
        else:
            print("    install it using: easy_install pep8")
        return 0

    if not folder:
        folder = sandbox.current.get_code_root()
    oldStdout = None
    sendEmail = xmail.hasDest(options)
    if sendEmail:
        oldStdout = sys.stdout
        sys.stdout = FakeFile()
    try:
        badFiles = check(folder, warn)
        if sendEmail:
            msg = sys.stdout.txt
            #print(msg)
            sys.stdout = oldStdout
            oldStdout = None
            xmail.sendmail(msg,
                sender='Pep8 Scanner <*****@*****.**>',
                subject='pep8 scan on %s' %
                    metadata.get_friendly_name_for_path(folder),
                options=options)
    finally:
        if oldStdout:
            sys.stdout = oldStdout
    return badFiles
def nag(dt, msg, options):
    if dt.owner or options.cc:
        fname = os.path.basename(dt.path)
        subject = 'disabled unit test near %s, line %d' % (fname, dt.lineNum)
        msg = ('''You are one of the people responsible for re-enabling this test. Please
get the test working, re-enable it, remove the comment that flags it as
disabled, and mark ticket #%s fixed. The sooner you can do this, the better.
Until the test is re-enabled, an important signal about the integrity of our
code is being suppressed with each build+test cycle.

''' % dt.ticket) + msg
        xmail.sendmail(msg, to=dt.owner, sender=FROM, subject=subject, options=options)
    else:
        sys.stderr.write('%s(%d): Error: disabled unit test but nobody can be nagged!\n', dt.path, dt.lineNum)
Example #4
0
def analyze(path, prebuilt, options):
    if not os.path.isdir(path):
        sys.stderr.write('%s is not a valid folder.\n' % path)
        return 1
    path = norm_folder(path)
    stats = StatsHolder(path)
    print('\nCompiling stats for %s...' % metadata.get_friendly_name_for_path(path))
    visitor = StatsVisitor(stats)
    recurser = StatsRecurser(stats)
    visitedFiles, visitedFolders = metadata.visit(path, visitor, recurser, excludePrograms=True)#, debug=True)
    report = generateReport(stats)
    print(report)
    if xmail.hasDest(options):
        xmail.sendmail(report, subject='code stats for %s' % metadata.get_friendly_name_for_path(path),
            sender='Code Stat Scanner <*****@*****.**>', options=options)
Example #5
0
def mailout(args, options):
    if args:
        process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
        txt = process.stdout.read()
        process.wait()
    elif options.body:
        if os.path.exists(options.body):
            body = open(options.body, 'r')
            txt = body.read()
            body.close()
        else:
            txt = ''
    else:
        txt = ''
    xmail.sendmail(txt, options=options)
Example #6
0
def analyze(path, prebuilt, options):
    if not os.path.isdir(path):
        sys.stderr.write('%s is not a valid folder.\n' % path)
        return 1
    path = norm_folder(path)
    stats = StatsHolder(path)
    print('\nCompiling stats for %s...' %
          metadata.get_friendly_name_for_path(path))
    visitor = StatsVisitor(stats)
    recurser = StatsRecurser(stats)
    visitedFiles, visitedFolders = metadata.visit(
        path, visitor, recurser, excludePrograms=True)  #, debug=True)
    report = generateReport(stats)
    print(report)
    if xmail.hasDest(options):
        xmail.sendmail(report,
                       subject='code stats for %s' %
                       metadata.get_friendly_name_for_path(path),
                       sender='Code Stat Scanner <*****@*****.**>',
                       options=options)
Example #7
0
def nag(dt, msg, options):
    if dt.owner or options.cc:
        fname = os.path.basename(dt.path)
        subject = 'disabled unit test near %s, line %d' % (fname, dt.lineNum)
        msg = (
            '''You are one of the people responsible for re-enabling this test. Please
get the test working, re-enable it, remove the comment that flags it as
disabled, and mark ticket #%s fixed. The sooner you can do this, the better.
Until the test is re-enabled, an important signal about the integrity of our
code is being suppressed with each build+test cycle.

''' % dt.ticket) + msg
        xmail.sendmail(msg,
                       to=dt.owner,
                       sender=FROM,
                       subject=subject,
                       options=options)
    else:
        sys.stderr.write(
            '%s(%d): Error: disabled unit test but nobody can be nagged!\n',
            dt.path, dt.lineNum)
Example #8
0
def main(warn, folder, options=None):
    badFiles = None
    exitCode = 0
    if not folder:
        folder = sandbox.current.get_code_root()
    oldStdout = None
    sendEmail = xmail.hasDest(options)
    if sendEmail:
        oldStdout = sys.stdout
        sys.stdout = FakeFile()
    try:
        exitCode, badFiles = check(folder, warn)
        if sendEmail:
            msg = sys.stdout.txt
            print(msg)
            sys.stdout = oldStdout
            oldStdout = None
            xmail.sendmail(msg, sender='Javascript Console Scanner <*****@*****.**>',
                subject='Javascript scan on %s' % metadata.get_friendly_name_for_path(folder), options=options)
    finally:
        if oldStdout:
            sys.stdout = oldStdout
    return exitCode, badFiles
Example #9
0
    if complainAboutOp:
        print("Expected operation: " + "|".join(_OPs.keys()))
    else:
        op = _OPs[op]
        folder = options.coderoot
        folder = ioutil.norm_folder(folder)
        oldStdout = None
        sendEmail = xmail.hasDest(options)
        if sendEmail:
            oldStdout = sys.stdout
            sys.stdout = FakeFile()
        try:
            # print('%s %s...\n' % (args[0], folder))
            exitCode = op(folder)
            if sendEmail:
                msg = sys.stdout.txt
                print(msg)
                sys.stdout = oldStdout
                oldStdout = None
                xmail.sendmail(
                    msg,
                    sender="Localizer <*****@*****.**>",
                    subject="localize %s report on %s" % (op, metadata.get_friendly_name_for_path(folder)),
                    options=options,
                )  # TODO Configurable reporting email address
        finally:
            if oldStdout:
                sys.stdout = oldStdout
    print("exiting with code=%s" % str(exitCode))
    sys.exit(exitCode)
Example #10
0
        print('Expected operation: ' + '|'.join(_OPs.keys()))
    else:
        op = _OPs[op]
        folder = options.coderoot
        folder = ioutil.norm_folder(folder)
        oldStdout = None
        sendEmail = xmail.hasDest(options)
        if sendEmail:
            oldStdout = sys.stdout
            sys.stdout = FakeFile()
        try:
            #print('%s %s...\n' % (args[0], folder))
            exitCode = op(folder)
            if sendEmail:
                msg = sys.stdout.txt
                print(msg)
                sys.stdout = oldStdout
                oldStdout = None
                xmail.sendmail(
                    msg,
                    sender='Localizer <*****@*****.**>',
                    subject='localize %s report on %s' %
                    (op, metadata.get_friendly_name_for_path(folder)),
                    options=options
                )  # TODO Configurable reporting email address
        finally:
            if oldStdout:
                sys.stdout = oldStdout
    print('exiting with code=%s' % str(exitCode))
    sys.exit(exitCode)