No description
Find a file
2025-12-02 16:19:09 +01:00
config [tutorial v1.1_097] A Jinja conditional disabled boolean variable (config and doc) 2025-12-02 16:19:09 +01:00
firefox [tutorial v1.1_097] A Jinja conditional disabled boolean variable 2025-12-02 16:19:09 +01:00
firefox.png [tutorial v1.1_095] A conditional disabled boolean variable (config and doc) 2025-12-02 16:19:05 +01:00
foxyproxy.png [init] Discover Rougail 2025-12-02 16:18:14 +01:00
install.txt [init] Discover Rougail 2025-12-02 16:18:14 +01:00
README.md [tutorial v1.1_097] A Jinja conditional disabled boolean variable (config and doc) 2025-12-02 16:19:09 +01:00
tree.html [tutorial v1.1_097] A Jinja conditional disabled boolean variable (config and doc) 2025-12-02 16:19:09 +01:00

[tutorial v1.1_097] A Jinja conditional disabled boolean variable

View the diff

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

Structure

.
└── firefox
    ├── 00-proxy.yml
    ├── 10-manual.yml
    ├── 20-manual.yml
    ├── 30-auto.yml
    ├── 40-no_proxy.yml
    ├── 50-prompt_authentication.yml
    └── 55-proxy_dns_socks5.yml


Contents of the firefox/55-proxy_dns_socks5.yml file

%YAML 1.2
---
version: 1.1

proxy_dns_socks5:
  description: Use proxy DNS when using SOCKS v5
  default: false
  disabled:
    jinja: |-
      {% if _.manual.socks_proxy.version is propertyerror %}
        the proxy mode is not manual
      {% elif _.manual.socks_proxy.version == 'v4' %}
        socks version is v4
      {% endif %}      
    description: |-
      if "firefox.proxy_mode" is not "Manual proxy configuration"
      or "firefox.manual.socks_proxy.version" is "v4"      
...

Let's generate the documentation

rougail -m firefox/ -o doc
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

🛈 Informations

Path: manual
disabled
Disabled: when the variable "Configure Proxy Access to the Internet" hasn't the value "Manual proxy configuration"

HTTP Proxy

🛈 Informations

Path: manual.http_proxy

Variable Description
manual.http_proxy.address
domainname mandatory
HTTP address.
Validators:
• type domainname
• the domain name can be an IP
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
Variable Description
manual.use_for_https
boolean mandatory
Also use this proxy for HTTPS.
Default: true
HTTPS Proxy or SOCKS Proxy

🛈 Informations

This family builds families dynamically.
Path:

  • manual.https_proxy
  • manual.socks_proxy
    hidden
    Hidden: in HTTPS case if "Also use this proxy for HTTPS" is set to "true"
    Identifiers:
  • HTTPS
  • SOCKS
Variable Description
manual.https_proxy.address
manual.socks_proxy.address
domainname mandatory
HTTPS or SOCKS address.
Validators:
• type domainname
• the domain name can be an IP
Default: the value of the variable "HTTP address"
manual.https_proxy.port
manual.socks_proxy.port
port mandatory
HTTPS or SOCKS 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: the value of the variable "HTTP Port"
manual.https_proxy.version
manual.socks_proxy.version
choice mandatory disabled
SOCKS host version used by proxy.
Choices:
• v4
• v5 ← (default)
Disabled: when the identifier is "HTTPS"
Variable Description
auto
web address mandatory disabled
Automatic proxy configuration URL.
Validators:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• type domainname
• the domain name can be a hostname
Disabled: when the variable "Configure Proxy Access to the Internet" hasn't the value "Automatic proxy configuration URL"
no_proxy
domainname multiple disabled unique
Address for which proxy will be desactivated.
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
Validators:
• type domainname
• the domain name can starts by a dot
• the domain name can be a hostname
• the domain name can be an IP
• the domain name can be network in CIDR format
Examples:
• .mozilla.org
• .net.nz
• 192.168.1.0/24
Disabled: when the variable "Configure Proxy Access to the Internet" has the value "No proxy"
prompt_authentication
boolean mandatory disabled
Prompt for authentication if password is saved.
Default: true
Disabled: when the variable "Configure Proxy Access to the Internet" has the value "No proxy"
proxy_dns_socks5
boolean mandatory disabled
Use proxy DNS when using SOCKS v5.
Default: false
Disabled: if "firefox.proxy_mode" is not "Manual proxy configuration"
or "firefox.manual.socks_proxy.version" is "v4"

Let's generate the changelog

rougail -m firefox/ -o doc --doc.contents changelog

Modified variable

Variable Description
proxy_dns_socks5
boolean mandatory disabled
Use proxy DNS when using SOCKS v5.
Default: false
Disabled: if "firefox.proxy_mode" is not "Manual proxy configuration"
or "firefox.manual.socks_proxy.version" is "v4"

User datas

Example 1

config/01/config.yml

---

Output

rougail -m firefox/ -u yaml -yf config/01/config.yml
╭──────────────────── Caption ─────────────────────╮
│ Undocumented but modified variable Default value │
╰──────────────────────────────────────────────────╯
Variables:
┗━━ 📓 Configure Proxy Access to the Internet: No proxy

Example 2

config/02/config.yml

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

Output

rougail -m firefox/ -u yaml -yf config/02/config.yml
╭─────────────────────────── Caption ────────────────────────────╮
│ Variable                           Default value               │
│ Undocumented but modified variable Modified value              │
│                                    (⏳ Original default value) │
╰────────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configurationloaded from the YAML file "config/02/config.yml" (⏳ No proxy)
┣━━ 📂 Manual proxy configuration
┣━━ 📂 HTTP Proxy
┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file 
"config/02/config.yml"
┗━━ 📓 HTTP Port: 8080
┣━━ 📓 Also use this proxy for HTTPS: true
┗━━ 📂 SOCKS Proxy
    ┣━━ 📓 SOCKS address: http.proxy.net
    ┣━━ 📓 SOCKS port: 8080
    ┗━━ 📓 SOCKS host version used by proxy: v5
┣━━ 📓 Address for which proxy will be desactivated: 
┣━━ 📓 Prompt for authentication if password is saved: true
┗━━ 📓 Use proxy DNS when using SOCKS v5: false

Example 3

config/03/config.yml

---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: http.proxy.net
proxy_dns_socks5: true

Output

rougail -m firefox/ -u yaml -yf config/03/config.yml
╭─────────────────────────── Caption ────────────────────────────╮
│ Variable                           Default value               │
│ Undocumented but modified variable Modified value              │
│                                    (⏳ Original default value) │
╰────────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configurationloaded from the YAML file "config/03/config.yml" (⏳ No proxy)
┣━━ 📂 Manual proxy configuration
┣━━ 📂 HTTP Proxy
┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file 
"config/03/config.yml"
┗━━ 📓 HTTP Port: 8080
┣━━ 📓 Also use this proxy for HTTPS: true
┗━━ 📂 SOCKS Proxy
    ┣━━ 📓 SOCKS address: http.proxy.net
    ┣━━ 📓 SOCKS port: 8080
    ┗━━ 📓 SOCKS host version used by proxy: v5
┣━━ 📓 Address for which proxy will be desactivated: 
┣━━ 📓 Prompt for authentication if password is saved: true
┗━━ 📓 Use proxy DNS when using SOCKS v5: true ◀ loaded from the YAML file 
    "config/03/config.yml" (⏳ false)

Example 4

config/04/config.yml

---
proxy_mode: Manual proxy configuration
manual:
  http_proxy:
    address: http.proxy.net
  socks_proxy:
    version: v4

Output

rougail -m firefox/ -u yaml -yf config/04/config.yml
╭─────────────────────────── Caption ────────────────────────────╮
│ Variable                           Default value               │
│ Undocumented but modified variable Modified value              │
│                                    (⏳ Original default value) │
╰────────────────────────────────────────────────────────────────╯
Variables:
┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configurationloaded from the YAML file "config/04/config.yml" (⏳ No proxy)
┣━━ 📂 Manual proxy configuration
┣━━ 📂 HTTP Proxy
┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file 
"config/04/config.yml"
┗━━ 📓 HTTP Port: 8080
┣━━ 📓 Also use this proxy for HTTPS: true
┗━━ 📂 SOCKS Proxy
    ┣━━ 📓 SOCKS address: http.proxy.net
    ┣━━ 📓 SOCKS port: 8080
    ┗━━ 📓 SOCKS host version used by proxy: v4 ◀ loaded from the YAML file 
        "config/04/config.yml" (⏳ v5)
┣━━ 📓 Address for which proxy will be desactivated: 
┗━━ 📓 Prompt for authentication if password is saved: true