Source code for law.cli.quickstart

# coding: utf-8

"""
"law quickstart" cli subprogram.
"""


import os
import shutil

from law.config import Config
from law.util import law_src_path


_cfg = Config.instance()


[docs]def setup_parser(sub_parsers): """ Sets up the command line parser for the *quickstart* subprogram and adds it to *sub_parsers*. """ parser = sub_parsers.add_parser( "quickstart", prog="law quickstart", description="Quickstart to create a minimal project structure and law configuration.", ) parser.add_argument( "--directory", "-d", help="the directory where the quickstart files are created; default: current directory", ) parser.add_argument( "--no-tasks", action="store_true", help="skip creating tasks", ) parser.add_argument( "--no-config", action="store_true", help="skip creating the law.cfg file", ) parser.add_argument( "--no-setup", action="store_true", help="skip creating the setup.sh file", )
[docs]def execute(args): """ Executes the *quickstart* subprogram with parsed commandline *args*. """ # get the quickstart directory qs_dir = law_src_path("templates", "quickstart") # prepare the directory if it does not exist yet out_dir = os.path.normpath(os.path.abspath(args.directory)) if not os.path.exists(out_dir): os.makedirs(out_dir) # copy tasks if not args.no_tasks: dst = os.path.join(out_dir, "my_package") shutil.copytree(os.path.join(qs_dir, "my_package"), dst) print("created {}".format(dst)) # copy config if not args.no_config: shutil.copy2(os.path.join(qs_dir, "law.cfg"), out_dir) print("created {}".format(os.path.join(out_dir, "law.cfg"))) # copy setup if not args.no_setup: shutil.copy2(os.path.join(qs_dir, "setup.sh"), out_dir) print("created {}".format(os.path.join(out_dir, "setup.sh")))