No description
Find a file
Emmanuel Garette 08e7754b62 [tutorial 013] The variable is a "choice" variable
"Foo" should not be an option to the "proxy_mode" variable.

Now the "proxy_mode" type is "choice", that means that there is a list of available values that can be selected.

We say that the "proxy_mode" variable is constrained (by choices): this variable accept, in fact, only a list of choices.
2025-11-04 19:22:06 +01:00
config [tutorial v1.1_013)] The variable is a "choice" variable (config and doc) 2025-11-04 19:22:06 +01:00
firefox [tutorial 013] The variable is a "choice" variable 2025-11-04 19:22:06 +01:00
firefox.png [tutorial v1.1_010)] A first variable with only a name (config and doc) 2025-11-04 19:22:04 +01:00
foxyproxy.png [init] Discover Rougail 2025-11-04 19:22:02 +01:00
README.md [tutorial v1.1_013)] The variable is a "choice" variable (config and doc) 2025-11-04 19:22:06 +01:00

[tutorial v1.1_013)] The variable is a "choice" variable

View the diff

Screenshot

Firefox Proxy setting

Structure

firefox/00-proxy.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

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -o doc -do github
Variable                                                                                        Description                                                                                    
proxy_mode
choice mandatory
Configure Proxy Access to the Internet.
Choices:
- No proxy ← (default)
- Auto-detect proxy settings for this network
- Use system proxy settings
- Manual proxy configuration
- Automatic proxy configuration URL

Let's generate the changelog

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -o doc --doc.contents changelog -do github

Modified variable

Variable                                                                                                                Description                                                                                                            
proxy_mode
string choice mandatory
Configure Proxy Access to the Internet.
Choices:
- No proxy ← (default)
- Auto-detect proxy settings for this network
- Use system proxy settings
- Manual proxy configuration
- Automatic proxy configuration URL

User datas

Example 1

config/01/config.yaml

---

Output

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -u yaml -ff config/01/config.yaml
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: No proxy

Example 2

config/02/config.yaml

---
proxy_mode: No proxy

Output

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -u yaml -ff config/02/config.yaml
╭────────────── Caption ───────────────╮
│ Variable Modified value              │
│          (⏳ Original default value) │
╰──────────────────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: No proxy ◀ loaded from the YAML file "config/02/config.yaml" (⏳ No proxy)

Example 3

config/03/config.yaml

---
proxy_mode: Manual proxy configuration

Output

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -u yaml -ff config/03/config.yaml
╭────────────── Caption ───────────────╮
│ Variable Modified value              │
│          (⏳ Original default value) │
╰──────────────────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/03/config.yaml" (⏳ No proxy)

Example 4

config/04/config.yaml

---
proxy_mode: foo

Output

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -u yaml -ff config/04/config.yaml
🔔 WARNINGS
┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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.yaml"
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: No proxy

Example 5

config/05/config.yaml

---
proxy_mode: 1

Output

foo@bar:~$ git switch --detach v1.1_013
foo@bar:~$ rougail -m firefox/ -u yaml -ff config/05/config.yaml
🔔 WARNINGS
┗━━ the value "1" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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/05/config.yaml"
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: No proxy