rougail-tutorials/README.md

8.5 KiB
Raw Blame History

[tutorial v1.1_030] A variable with type "domainname"

Read the tutorial "A variable with type "domainname"" in the documentation

Screenshot

Firefox Proxy setting

Clone and install

To test this tutorial, you need to download this repository and install Rougail:

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:

git switch --detach v1.1_030

Structure

.
└── firefox
    ├── 00-proxy.yml
    └── 10-manual.yml


Contents of the firefox/10-manual.yml file

%YAML 1.2
---
version: 1.1

manual:  # Manual proxy configuration

  http_proxy:  # HTTP Proxy

    address:
      description: HTTP address
      type: domainname
...


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/>•&nbsp;No proxy **← (default)**<br/>•&nbsp;Auto-detect proxy settings for this network<br/>•&nbsp;Use system proxy settings<br/>•&nbsp;Manual proxy configuration<br/>•&nbsp;Automatic proxy configuration URL |

#### Manual proxy configuration

> [!NOTE]
> 
> **Path**: manual

##### HTTP Proxy

> [!NOTE]
> 
> **Path**: manual.http_proxy

| Variable                                                                                                                                                                                                    | Description                                      |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| **<a id="manual.http_proxy.address" name="manual.http_proxy.address">manual.http_proxy.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address.<br/>**Validator**: type domainname |
***
### Let's generate the changelog```shell
rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

Modified variable

Variable Description
manual.http_proxy.address
domainname mandatory
HTTP address.
Validator: type domainname

User datas### Example 1#### config/01/config.yml

---
manual:
  http_proxy:
    address: example.net

Output```shell

rougail -m firefox/ -u yaml -yf config/01/config.yml

> [!NOTE]
>
> **Caption:**
> - Variable
> - <span style="color: #B8860B">Default value</span>
> - <span style="color: #006400">Modified value</span>

Variables:
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #B8860B">No proxy</span>
- :open_file_folder: manual (Manual proxy configuration)
  - :open_file_folder: http_proxy (HTTP Proxy)
    - :notebook: address (HTTP address): <span style="color: #006400">example.net</span> ← loaded from the YAML file "config/01/config.yml"

***
### Example 2#### config/02/config.yml
```yml
---
manual:
  http_proxy:
    address: 192.168.0.1

Output```shell

rougail -m firefox/ -u yaml -yf config/02/config.yml

> [!CAUTION]
> 
> - manual (Manual proxy configuration)
>   - http_proxy (HTTP Proxy)
>     - address (HTTP address)
>       - <span style='color: #EFBF04'>:bell: the value "192.168.0.1" is an invalid domain name, must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"</span>
>       - <span style='color: #C23636'>:stop_sign: mandatory variable but has no value</span>

***
#### Output when invalid user data is an error```shell
rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_data_error

Caution

  • manual (Manual proxy configuration)
    • http_proxy (HTTP Proxy)
      • address (HTTP address)
        • 🛑 the value "192.168.0.1" is an invalid domain name, must not be an IP, it has been loading from the YAML file "config/02/config.yml"
        • 🛑 mandatory variable but has no value

Example 3#### config/03/config.yml

---
manual:
  http_proxy:
    address: not a valid domain name.com

Output```shell

rougail -m firefox/ -u yaml -yf config/03/config.yml

> [!CAUTION]
> 
> - manual (Manual proxy configuration)
>   - http_proxy (HTTP Proxy)
>     - address (HTTP address)
>       - <span style='color: #EFBF04'>:bell: the value "not a valid domain name.com" is an invalid domain name, must start with lowercase characters followed by lowercase characters, number, "-" and "." characters are allowed, it will be ignored when loading from the YAML file "config/03/config.yml"</span>
>       - <span style='color: #C23636'>:stop_sign: mandatory variable but has no value</span>

***
#### Output when invalid user data is an error```shell
rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error

Caution

  • manual (Manual proxy configuration)
    • http_proxy (HTTP Proxy)
      • address (HTTP address)
        • 🛑 the value "not a valid domain name.com" is an invalid domain name, must start with lowercase characters followed by lowercase characters, number, "-" and "." characters are allowed, it has been loading from the YAML file "config/03/config.yml"
        • 🛑 mandatory variable but has no value