No description
| config | ||
| firefox | ||
| firefox.png | ||
| foxyproxy.png | ||
| install.txt | ||
| README.md | ||
| tree.html | ||
[tutorial v1.1_070] A conditional hidden family with Jinja
Read the tutorial "A conditional hidden family with Jinja" in the documentation
Screenshot
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_070
Structure
.
└── firefox
├── 00-proxy.yml
├── 10-manual.yml
└── 20-manual.yml
Contents of the firefox/20-manual.yml file
%YAML 1.2
---
version: 1.1
manual:
use_for_https: true # Also use this proxy for HTTPS
'{{ identifier }}_proxy':
description: '{{ identifier }} Proxy'
hidden:
jinja: |-
{% if _.use_for_https %}
HTTPS is same has HTTP
{% endif %}
dynamic:
- HTTPS
- SOCKS
address:
description: '{{ identifier }} address'
default:
variable: __.http_proxy.address
port:
description: '{{ identifier }} port'
default:
variable: __.http_proxy.port
version:
description: SOCKS host version used by proxy
choices:
- v4
- v5
default: v5
disabled:
type: identifier
when: HTTPS
...
Let's generate the documentation
rougail -m firefox/ -o doc
| Variable | Description |
|---|---|
proxy_modechoice 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
Note
Path: manual
disabled
Disabled: when the variable "Configure Proxy Access to the Internet" hasn't the value "Manual proxy configuration"
HTTP Proxy
Note
Path: manual.http_proxy
| Variable | Description |
|---|---|
manual.http_proxy.addressdomainname mandatory |
HTTP address. Validators: • type domainname • the domain name can be an IP |
manual.http_proxy.portport 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_httpsboolean mandatory |
Also use this proxy for HTTPS. Default: true |
HTTPS Proxy or SOCKS Proxy
Note
This family builds families dynamically.
Path:
- manual.https_proxy
- manual.socks_proxy
hidden
Hidden: depends on a calculation
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.socks_proxy.versionchoice mandatory disabled |
SOCKS host version used by proxy. Choices: • v4 • v5 ← (default) Disabled: when the identifier is "HTTPS" |
User datas
Example 1
config/01/config.yml
---
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
rougail -m firefox/ -u yaml -yf config/01/config.yml
Note
Caption:
- Variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/01/config.yml" (⏳ No proxy)
- 📂 manual (Manual proxy configuration)
- 📂 http_proxy (HTTP Proxy)
- 📓 address (HTTP address): http.proxy.net ← loaded from the YAML file "config/01/config.yml"
- 📓 port (HTTP Port): 3128 ← loaded from the YAML file "config/01/config.yml" (⏳ 8080)
- 📓 use_for_https (Also use this proxy for HTTPS): false ← loaded from the YAML file "config/01/config.yml" (⏳ true)
- 📂 https_proxy (HTTPS Proxy)
- 📓 address (HTTPS address): https.proxy.net ← loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net)
- 📓 port (HTTPS port): 3128
- 📂 socks_proxy (SOCKS Proxy)
- 📓 address (SOCKS address): http.proxy.net
- 📓 port (SOCKS port): 3128
- 📓 version (SOCKS host version used by proxy): v5
- 📂 http_proxy (HTTP Proxy)
Output for "manual.https_proxy"
rougail -m firefox/ -u yaml -yf config/01/config.yml --cli.root manual.https_proxy
Note
Caption:
- Variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📓 address (HTTPS address): https.proxy.net ← loaded from the YAML file "config/01/config.yml" (⏳ https.proxy.net ← loaded from the YAML file "config/01/config.yml" ⏳ http.proxy.net)
- 📓 port (HTTPS port): 3128
Example 2
config/02/config.yml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
port: 3128
use_for_https: true
https_proxy:
address: https.proxy.net
Output
rougail -m firefox/ -u yaml -yf config/02/config.yml
Warning
- manual (Manual proxy configuration)
- https_proxy (HTTPS Proxy)
- address (HTTPS address): 🔔 family "https_proxy" (HTTPS Proxy) has property hidden, so cannot access to "address" (HTTPS address), it will be ignored when loading from the YAML file "config/02/config.yml"
Note
Caption:
- Variable
- Unmodifiable variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/02/config.yml" (⏳ No proxy)
- 📂 manual (Manual proxy configuration)
- 📂 http_proxy (HTTP Proxy)
- 📓 address (HTTP address): http.proxy.net ← loaded from the YAML file "config/02/config.yml"
- 📓 port (HTTP Port): 3128 ← loaded from the YAML file "config/02/config.yml" (⏳ 8080)
- 📓 use_for_https (Also use this proxy for HTTPS): true ← loaded from the YAML file "config/02/config.yml" (⏳ true)
- 📂 https_proxy (HTTPS Proxy)
- 📓 address (HTTPS address): http.proxy.net
- 📓 port (HTTPS port): 3128
- 📂 socks_proxy (SOCKS Proxy)
- 📓 address (SOCKS address): http.proxy.net
- 📓 port (SOCKS port): 3128
- 📓 version (SOCKS host version used by proxy): v5
- 📂 http_proxy (HTTP Proxy)
Output for "manual.https_proxy"
rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.root manual.https_proxy
Caution
- manual (Manual proxy configuration)
- https_proxy (HTTPS Proxy)
- address (HTTPS address): 🛑 family "https_proxy" (HTTPS Proxy) has property hidden, so cannot access to "address" (HTTPS address), it has been loading from the YAML file "config/02/config.yml"