Source code for taika.cli

# -*- coding: utf-8 -*-

"""
:mod:`taika.cli`
================

The entry point for the command line interface of Taika.
"""
import argparse
import os
import sys

from taika import Taika
from taika.taika import TAIKA_CONF


[docs]def parse_arguments(arguments): """Create a :class:`argparse.ArgumentParser` and run :meth:`argparse.ArgumentParser.parse_args` agains `arguments`. Parameters ---------- arguments : list A list of arguments to be parsed. Returns ------- namespace : `argparse.Namespace` The namespace created when `arguments` are parsed. """ parser = argparse.ArgumentParser(prog="taika") parser.add_argument("source", help="The directory that contains the files to be parsed.") parser.add_argument("destination", help="The directory that will contain the parsed files.") parser.add_argument( "-c", "--conf", default=os.getenv("TAIKA_CONF"), help=f"The configuration file for Taika. Default to '{TAIKA_CONF}', but it can be " "setted using the environment variable 'TAIKA_CONF'.", ) return parser.parse_args(arguments)
[docs]def main(arguments=None): """The main entry point, parse `arguments` behaves accordingly. Parameters ---------- arguments : list, optional (default=None) A list of arguments to be parsed. If ``None``, ``sys.argv[1:]`` is used. Returns ------- err_code : int Non-zero value indicates error, or zero on success. """ if arguments is None: arguments = sys.argv[1:] args = parse_arguments(arguments) site = Taika(args.source, args.destination, args.conf) site.process() return 0
if __name__ == "__main__": sys.exit(main(sys.argv[1:]))