<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def main(*args):
 """ Enter point. """

    args = args or sys.argv[1:]
    params = PARSER.parse_args(args)

    from .log import setup_logging
    setup_logging(params.level.upper())

    from .core import Starter
    starter = Starter(params)

    if not starter.params.TEMPLATES or starter.params.list:
        setup_logging('WARN')
        for t in sorted(starter.iterate_templates()):
            logging.warn("%s -- %s", t.name, t.params.get(
                'description', 'no description'))
        return True

    try:
        starter.copy()

    except Exception as e: # noqa
        logging.error(e)
        sys.exit(1)