No description
Find a file
Emmanuel Garette da95f0ca08 [tutorial 014] Family in "shorthand" mode
The sub family is now in "shorthand" mode. In this mode we can only define "name" and "description" attributes.

Inside the sub family we add two variables (with domainname and port types).
2024-10-23 10:58:22 +02:00
config [tutorial 014] Family in "shorthand" mode (config and doc) 2024-10-23 10:58:22 +02:00
firefox [tutorial 014] Family in "shorthand" mode 2024-10-23 10:58:22 +02:00
firefox.png [tutorial 010] A family (config and doc) 2024-10-23 10:58:17 +02:00
foxyproxy.png [init] Discover Rougail 2024-10-23 10:58:06 +02:00
README.md [tutorial 014] Family in "shorthand" mode (config and doc) 2024-10-23 10:58:22 +02:00

[tutorial 014] Family in "shorthand" mode

View the diff

Screenshot

Firefox Proxy setting

Structure

firefox/00-proxy.yml

---
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

firefox/10-manual.yml

---
manual:
  description: Manual proxy configuration
  type: family
  disabled:
    variable: proxy_mode
    when_not: 'Manual proxy configuration'

  http_proxy:
    description: HTTP Proxy
    type: family

    address:
      description: HTTP address
      type: domainname

Generated documentation

foo@bar:~$ rougail -v 1.1 -m firefox/ -o doc -do github

Variables

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

Manual proxy configuration

disabled

Disabled: proxy_mode.

HTTP Proxy
Variable                                                                                            Description                                                                                        
manual.http_proxy.address
domainname mandatory
HTTP address.

User data

Example 1

config/01/config.yaml

---

Output

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/01/config.yaml
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
│ Unmodifiable variable                                       │
╰─────────────────────────────────────────────────────────────╯
Variables:
┗━━ 📓 proxy_mode: No proxy

Output in read write mode

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/01/config.yaml --exporter.read_write
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┗━━ 📓 proxy_mode: No proxy

Example 2

config/02/config.yaml

---
proxy_mode: Manual proxy configuration

Output

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/02/config.yaml
🛑 ERRORS
┣━━ The following variables are mandatory but have no value:
┗━━   - manual.http_proxy.address (HTTP address)

Output in read write mode

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/02/config.yaml --exporter.read_write
🛑 ERRORS
┣━━ The following variables are mandatory but have no value:
┗━━   - manual.http_proxy.address (HTTP address)

Example 3

config/03/config.yaml

---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: example.net

Output

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/03/config.yaml
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: example.net

Output in read write mode

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/03/config.yaml --exporter.read_write
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: example.net

Example 4

config/04/config.yaml

---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: example.net
    port: '3128'

Output

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/04/config.yaml
🛑 ERRORS
┗━━ unknown option "port" in optiondescription "manual.http_proxy" (HTTP Proxy)
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: example.net

Output in read write mode

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/04/config.yaml --exporter.read_write
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: example.net

Example 5

config/05/config.yaml

---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: http.proxy.net
    port: '3128'
  use_for_https: false
  https_proxy:
    address: https.proxy.net

Output

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/05/config.yaml
🛑 ERRORS
┣━━ unknown option "port" in optiondescription "manual.http_proxy" (HTTP Proxy)
┣━━ unknown option "use_for_https" in optiondescription "manual" (Manual proxy configuration)
┗━━ unknown option "https_proxy" in optiondescription "manual" (Manual proxy configuration)
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: http.proxy.net

Output in read write mode

foo@bar:~$ rougail -v 1.1 -m firefox/ -u file -ff config/05/config.yaml --exporter.read_write
╭────────────────────────── Caption ──────────────────────────╮
│ Variable                           Default value            │
│ Undocumented variable              Modified value           │
│ Undocumented but modified variable (Original default value) │
╰─────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy)
┗━━ 📂 manual
    ┗━━ 📂 http_proxy
        ┗━━ 📓 address: http.proxy.net