215 lines
7.7 KiB
Markdown
215 lines
7.7 KiB
Markdown
- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
|
||
- [[tutorial v1.1_003] Set a default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003))
|
||
|
||
# [tutorial v1.1_010] A variable with a list of possible values
|
||
|
||
[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010)
|
||
|
||
[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#a-variable-with-a-list-of-possible-values)
|
||
|
||
|
||
## Screenshot
|
||
|
||
|
||
<img src="firefox.png" width=50% height=50% alt="Firefox Proxy setting"/>
|
||
|
||
|
||
## Clone and install
|
||
|
||
|
||
|
||
To test this tutorial, you need to download this repository and install Rougail:
|
||
|
||
```shell
|
||
git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
|
||
cd rougail-tutorials
|
||
python -m venv venv_rougail
|
||
. venv_rougail/bin/activate
|
||
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml
|
||
```
|
||
|
||
Then switch to the tutorial page:
|
||
|
||
```shell
|
||
git switch --detach v1.1_010
|
||
```
|
||
|
||
## Structure
|
||
|
||
|
||
|
||
<p>
|
||
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./">.</a><br/>
|
||
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/">firefox</a><br/>
|
||
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
|
||
<br/><br/></p>
|
||
|
||
Contents of the firefox/00-proxy.yml file
|
||
|
||
```yml
|
||
%YAML 1.2
|
||
---
|
||
version: 1.1
|
||
|
||
proxy_mode:
|
||
description: Configure Proxy Access to the Internet
|
||
choices:
|
||
- No proxy
|
||
- Auto-detect proxy settings for this network
|
||
- Use system proxy settings
|
||
- Manual proxy configuration
|
||
- Automatic proxy configuration URL
|
||
default: No proxy
|
||
...
|
||
|
||
```
|
||
|
||
***
|
||
### Let's generate the documentation
|
||
|
||
```shell
|
||
rougail -m firefox/ -o doc
|
||
```
|
||
| Variable | Description |
|
||
|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Choices**: <br/>• No proxy **← (default)**<br/>• Auto-detect proxy settings for this network<br/>• Use system proxy settings<br/>• Manual proxy configuration<br/>• Automatic proxy configuration URL |
|
||
|
||
|
||
***
|
||
### Let's generate the changelog
|
||
|
||
```shell
|
||
rougail -m firefox/ -o doc --doc.contents changelog
|
||
```
|
||
#### Modified variable
|
||
|
||
| Variable | Description |
|
||
|------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Choices**: <br/>• No proxy **← (default)**<br/>• <ins>Auto-detect proxy settings for this network</ins><br/>• <ins>Use system proxy settings</ins><br/>• <ins>Manual proxy configuration</ins><br/>• <ins>Automatic proxy configuration URL</ins> |
|
||
|
||
|
||
***
|
||
## User datas
|
||
|
||
### Example 1
|
||
|
||
#### config/01/config.yml
|
||
|
||
|
||
```yml
|
||
---
|
||
```
|
||
|
||
***
|
||
#### Output
|
||
|
||
```shell
|
||
rougail -m firefox/ -u yaml -yf config/01/config.yml
|
||
```
|
||
> [!NOTE]
|
||
>
|
||
> **Caption:**
|
||
> - Variable
|
||
> - <span style="color: #B8860B">Default value</span>
|
||
|
||
Variables:
|
||
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #B8860B">No proxy</span>
|
||
|
||
***
|
||
### Example 2
|
||
|
||
#### config/02/config.yml
|
||
|
||
|
||
```yml
|
||
---
|
||
proxy_mode: No proxy
|
||
```
|
||
|
||
***
|
||
#### Output
|
||
|
||
```shell
|
||
rougail -m firefox/ -u yaml -yf config/02/config.yml
|
||
```
|
||
> [!NOTE]
|
||
>
|
||
> **Caption:**
|
||
> - Variable
|
||
> - <span style="color: #006400">Modified value</span>
|
||
> - (:hourglass_flowing_sand: Original default value)
|
||
|
||
Variables:
|
||
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #006400">No proxy</span> ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: No proxy)
|
||
|
||
***
|
||
### Example 3
|
||
|
||
#### config/03/config.yml
|
||
|
||
|
||
```yml
|
||
---
|
||
proxy_mode: Manual proxy configuration
|
||
```
|
||
|
||
***
|
||
#### Output
|
||
|
||
```shell
|
||
rougail -m firefox/ -u yaml -yf config/03/config.yml
|
||
```
|
||
> [!NOTE]
|
||
>
|
||
> **Caption:**
|
||
> - Variable
|
||
> - <span style="color: #006400">Modified value</span>
|
||
> - (:hourglass_flowing_sand: Original default value)
|
||
|
||
Variables:
|
||
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #006400">Manual proxy configuration</span> ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy)
|
||
|
||
***
|
||
### Example 4
|
||
|
||
#### config/04/config.yml
|
||
|
||
|
||
```yml
|
||
---
|
||
proxy_mode: foo
|
||
```
|
||
|
||
***
|
||
#### Output
|
||
|
||
```shell
|
||
rougail -m firefox/ -u yaml -yf config/04/config.yml
|
||
```
|
||
> [!WARNING]
|
||
>
|
||
> - proxy_mode (Configure Proxy Access to the Internet): :bell: <span style="color: #EFBF04">the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it will be ignored when loading from the YAML file "config/04/config.yml"</span>
|
||
|
||
> [!NOTE]
|
||
>
|
||
> **Caption:**
|
||
> - Variable
|
||
> - <span style="color: #B8860B">Default value</span>
|
||
|
||
Variables:
|
||
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #B8860B">No proxy</span>
|
||
|
||
***
|
||
#### Output when invalid user data is an error
|
||
|
||
```shell
|
||
rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error
|
||
```
|
||
> [!CAUTION]
|
||
>
|
||
> - proxy_mode (Configure Proxy Access to the Internet): :stop_sign: <span style="color: #C23636">the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it has been loading from the YAML file "config/04/config.yml"</span>
|
||
|
||
***
|
||
|
||
|
||
- [[tutorial v1.1_020] Creating a new family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_020/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020))
|