No description
Find a file
2026-04-17 12:30:44 +02:00
config [tutorial v1.1_032] A variable with type "port" (config and doc) 2026-04-17 12:30:44 +02:00
firefox [tutorial v1.1_031] A variable with type’s parameters 2026-04-17 12:30:42 +02:00
firefox.png [tutorial v1.1_020] Creating a new family (config and doc) 2026-04-17 12:30:32 +02:00
foxyproxy.png [init] Discover Rougail 2026-04-17 12:30:18 +02:00
install.txt [init] Discover Rougail 2026-04-17 12:30:18 +02:00
README.md [tutorial v1.1_032] A variable with type "port" (config and doc) 2026-04-17 12:30:44 +02:00
tree.html [tutorial v1.1_032] A variable with type "port" (config and doc) 2026-04-17 12:30:44 +02:00

[tutorial v1.1_032] A variable with type "port"

Read the tutorial "A variable with type "port"" 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_032

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
      params:
        allow_ip: true

    port:
      description: HTTP Port
      type: port
      default: 8080
...


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/>**Validators**: <br/>•&nbsp;type domainname<br/>•&nbsp;the domain name can be an IP                                                                                                                      |
| **<a id="manual.http_proxy.port" name="manual.http_proxy.port">manual.http_proxy.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory`                | HTTP Port.<br/>**Validators**: <br/>•&nbsp;well-known ports (1 to 1023) are allowed<br/>•&nbsp;registred ports (1024 to 49151) are allowed<br/>•&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: 8080 |
***
### Let's generate the changelog```shell
rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

New variable

Variable Description
manual.http_proxy.port
port mandatory
HTTP Port.
Validators:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• private ports (greater than 49152) are allowed
Default: 8080

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

---
proxy_mode: Manual proxy configuration
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>
> - (: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/01/config.yml" (:hourglass_flowing_sand: No proxy)
- :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"
    - :notebook: port (HTTP Port): <span style="color: #B8860B">8080</span>

***
### Example 2#### config/02/config.yml
```yml
---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: example.net
    port: 3128

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">Manual proxy configuration</span> ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: No proxy)
- :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/02/config.yml"
    - :notebook: port (HTTP Port): <span style="color: #006400">3128</span> ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: 8080)

***
### Example 3#### config/03/config.yml
```yml
---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: example.net
    port: 100000

Output```shell

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

> [!WARNING]
> 
> - manual (Manual proxy configuration)
>   - http_proxy (HTTP Proxy)
>     - port (HTTP Port): :bell: <span style="color: #EFBF04">the value "100000" is an invalid port, must be between 1 and 65535, it will be ignored when loading from the YAML file "config/03/config.yml"</span>

> [!NOTE]
>
> **Caption:**
> - Variable
> - <span style="color: #B8860B">Default value</span>
> - <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)
- :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/03/config.yml"
    - :notebook: port (HTTP Port): <span style="color: #B8860B">8080</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)
      • port (HTTP Port): 🛑 the value "100000" is an invalid port, must be between 1 and 65535, it has been loading from the YAML file "config/03/config.yml"