예제 #1
0
파일: main.py 프로젝트: dhutty/saliere
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)
예제 #2
0
class TestConfig(unittest.TestCase):

    config_file = "config.yml"
    config_string = """
    common:
        testkey: "test value"
    """

    def setUp(self):
        self.c = Config()
        self. c.load_from_string(self.config_string)

    def test_key_lookup_00(self):
        value = self. c.get_value("common:testkey")
        self.assertEqual(value, "test value")

    def test_key_lookup_01(self):
        value = self.c.get_value("common:missingkey")
        self.assertEqual(value, None)

    def test_key_lookup_02(self):
        value = self.c.get_value("common:missingkey", "missing value")
        self.assertEqual(value, "missing value")

    def test_load_file_00(self):
        self.assertIsNotNone(self.c.config)
예제 #3
0
파일: main.py 프로젝트: TeamLovely/Saliere
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)
예제 #4
0
 def setUp(self):
     self.c = Config()
     self.c.load_from_string(self.config_string)