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.