Esempio n. 1
0
def main():
    # Create the parser.
    args = docopt(__doc__, version='Saliere 0.2.0')

    # Create the templatizer object.
    t = Templatizer(template_path_list)

    # List the templates if asked to.
    if args.get('--list'):
        print("Available templates: \n\t" + "\n\t".join(t.list_templates()))
        exit(0)

    # Retrieve the template path.
    template_path = t.locate_template(args.get('<type>'))
    if not template_path:
        print("The template name you specified ('{}') does not exist.".format(args.get('<type>')))
        exit(1)

    # Get the project type.
    t.template_type = args.get('<type>')

    # Load the template variables, if any, from the configuration file.
    config = Config()
    if args.get('-c'):
        config.load_from_file(args.get('-c'))
    template_vars = config.get_value(args.get('<type>'))

    # Load the template variables, if any, from the command line.
    if args.get('--var'):
        # Load the variables and override the values from the config file with the values from the CLI.
        template_vars.update(load_variables(args.get('--var')))

    # Call the copy function.
    t.copy(args.get('<name>'), os.path.expanduser(args.get('--output')), template_vars)
Esempio n. 2
0
def main():
    # Create the parser.
    args = docopt(__doc__, version='Saliere 0.2.0')

    # Create the templatizer object.
    t = Templatizer(template_path_list)

    # List the templates if asked to.
    if args.get('--list'):
        print("Available templates: \n\t" + "\n\t".join(t.list_templates()))
        exit(0)

    # Ensure the project name and project type are specified.
    if not args.get('--name') or not args.get('--type'):
        print("The template type and project name are required: -t type -n name.")
        exit(1)

    # Retrieve the template path.
    template_path = t.locate_template(args.get('--type'))
    if not template_path:
        print("The template name you specified does not exist.")
        exit(1)

    # Get the project type.
    t.template_type = args.get('--type')

    # Load the template variables, if any, from the configuration file.
    config = Config()
    if args.get('-c'):
        config.load_from_file(args.get('-c'))
    template_vars = config.get_value(args.get('--type'))

    # Load the template variables, if any, from the command line.
    if args.get('--var'):
        vars_split = args.get('--var').split('|')
        vars_list = [v.split('=', 1) for v in vars_split if '=' in v]
        cli_template_vars = dict(vars_list)

        # And override the values from the config file with the values from the CLI.
        template_vars.update(cli_template_vars)

    # Call the copy function.
    t.copy(args.get('--name'), args.get('--output'), template_vars)