Esempio n. 1
0
 def _level_to_string(self, level):
     if Logger.DEBUG == level:
         return italic("[DEBUG]")
     if Logger.INFO == level:
         return bold("[INFO] ")
     if Logger.WARN == level:
         return styled_text("[WARN] ", BOLD, fg(BROWN))
     return styled_text("[ERROR]", BOLD, fg(RED))
Esempio n. 2
0
def main(*args):
    try:
        options, arguments = parse_options(args)
    except CommandLineUsageException as e:
        sys.stderr.write("Usage error: %s\n" % e)
        sys.stderr.write(e.usage)
        return 1

    start = datetime.datetime.now()

    logger = init_logger(options)
    reactor = init_reactor(logger)

    if options.list_tasks:
        reactor.prepare_build(property_overrides=options.property_overrides,
            project_directory=options.project_directory)

        sys.stdout.write("Tasks found in %s building in %s:\n\n" % (reactor.project.name, reactor.project.basedir))
        for task in sorted(reactor.get_tasks()):
            sys.stdout.write("%20s\t%s\n" % (task.name,
                                             " ".join(task.description) or "<no description available>"))
            if task.dependencies:
                sys.stdout.write("\t\t\tdepends on tasks: %s\n" % " ".join(task.dependencies))
            sys.stdout.write("\n")
        return 0

    banner = "PYTHON BUILDER Version %s\n" % VERSION
    if should_colorize(options):
        banner = bold(banner)

    if not options.very_quiet:
        sys.stdout.write(banner)
        sys.stdout.write("Build started at %s\n" % format_timestamp(start))
        sys.stdout.write(("-" * 60) + "\n\n")

    successful = True
    failure_message = None
    summary = None

    try:
        try:
            reactor.prepare_build(property_overrides=options.property_overrides,
                project_directory=options.project_directory)

            if options.list_tasks:
                for task in sorted(reactor.get_tasks()):
                    sys.stdout.write("%20s\t%s\n" % (task.name,
                                                     task.description or "<no description available>"))
                    if task.dependencies:
                        sys.stdout.write("\t\t\tdepends on tasks: %s\n" % " ".join(task.dependencies))
                    sys.stdout.write("\n")
            else:
                summary = reactor.build(environments=options.environments, tasks=arguments)
        except KeyboardInterrupt:
            raise PythonbuilderException("Build aborted")

    except Exception as e:
        failure_message = str(e)
        if options.debug:
            traceback.print_exc(file=sys.stderr)
        successful = False

    finally:
        end = datetime.datetime.now()
        if not options.very_quiet:
            print_summary(successful, summary, start, end, options, failure_message)

        return 0 if successful else 1