Variable with multiple values ================================ .. objectives:: Objectives After creating another variable for the needs of our use case, we will introduce the concept of multiple type variable. .. prerequisites:: Prerequisites - We assume that Rougail's library is :ref:`installed ` on your computer. - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step by checking out the corresponding tag of the `rougail-tutorials` git repository. Each tag corresponds to a stage of progress in the tutorial. Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, this workshop page corresponds to the tags :tutorial:`v1.1_100 ` to :tutorial:`v1.1_111 ` in the repository. :: git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git git switch --detach v1.1_100 .. type-along:: A web_address variable A conditional disabled variable with type web_address ------------------------------------------------------------- First we need to add a variable as part of our use case with a type we haven't used yet, the `web_address` type. It is related to the automatic proxy configuration situation. Let's put it in the new :file:`firefox/30-auto.yml` :term:`structure file`. Note that this variable has a :term:`disabled` property defined: .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_100/firefox/30-auto.yml :language: yaml :caption: The :file:`firefox/30-auto.yml` structure definition file with the `auto` variable .. %YAML 1.2 --- version: 1.1 auto: description: Automatic proxy configuration URL type: web_address disabled: variable: _.proxy_mode when_not: Automatic proxy configuration URL ... If the `proxy_mode` variable has the `"Automatic proxy configuration URL"` value, this `auto` variable is enabled. It is :term:`disabled` otherwise. Let's launch the Rougail CLI on this :term:`user data file `: .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_100/config/03/config.yml :language: yaml :caption: The :file:`config/03/config.yml` user data file .. --- proxy_mode: Automatic proxy configuration URL auto: https://auto.proxy.net/wpad.dat we have this output: .. raw:: html :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_100/config/03/output_ro.html :class: output .. ╭────────────── Caption ───────────────╮ │ Variable Modified value │ │ (⏳ Original default value) │ ╰──────────────────────────────────────╯ Variables: ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy) ┗━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ loaded from the YAML file "config/03/config.yml"