Initializing the Template

Initializing the Template

Step 1 - Initializing the Custom Template

We will now initialize the custom template we created in the previous page.

Open the terminal to an empty folder and run:

uip init -t <path to example_template.zip> -e "log_level=WaRn"

The command should run successfully with the following output:

Successfully initialized "example-template (1.0.0)" template in "<path may vary>"

The directory structure (ignoring *.pyc and __pycache__) should be as follows:

<folder name>/ ├── .uip │ └── config │ └── uip.yml ├── __init__.py ├── requirements.txt ├── setup.cfg ├── setup.py └── src ├── __init__.py ├── extension.py ├── extension.yml └── templates └── template.json

At this point, we have successfully initialized the custom template with the custom parameters, log_level and msg.

Open src/extension.py, and you should see my_msg on line 19 set to "test_message". Since a value for the msg variable wasn’t specified during initialization time, the default value (defined in template_config.yml) of test_message was substituted.

Open src/templates/template.json, and you should see the logLevel property set to Warn as expected.

Step 2 - Saving the Template using uip init

In the previous step, we initialized an Extension using the example_template.zip. If we want to do that again, the zip file will need to be specified again as well.

There are two ways to save the example_template for future use, and the first one is shown below:

Go ahead and delete the Extension initialized in the folder, including the .uip/ folder. Assuming it’s an empty folder, run

uip init -t <path to example_template.zip> -e "log_level=WaRn" -e "msg=sample message!" --save

Specifying --save will save the template in a location known to the CLI. If you now run

uip template list

you should see the example-template listed as well for future use

+--------------------+---------+---------------------------------------------------------+ | Extension Template | Version | Description | +--------------------+---------+---------------------------------------------------------+ | ue-task | 1.0.0 | starter Extension with minimal code | +--------------------+---------+---------------------------------------------------------+ | ue-publisher | 1.0.0 | starter Extension with a local Universal Event template | +--------------------+---------+---------------------------------------------------------+ | example-template | 1.0.0 | this is the description for example template | +--------------------+---------+---------------------------------------------------------+

The value of name, version, and description from template_config.yml are used to populate the table entry for example-template

To see the variables we defined in template_config.yml, run

uip template list example-template

which will print

+---------------+--------------+---------------------------------------+ | Variable Name | Default | Description | +---------------+--------------+---------------------------------------+ | msg | test_message | message to print to STDOUT and STDERR | | log_level | Info | Universal Template Log Level | +---------------+--------------+---------------------------------------+

Go ahead and delete the previously initialized Extension once again, including the .uip/ folder. Assuming it’s an empty folder, run

uip init -t example-template -e "log_level=WaRn" -e "msg=sample message!"

Notice that the path to the zip file no longer needs to be specified, since the template has already been saved.