Emmanuel Garette
57640cb47d
Add a sub family "https_proxy" which will be hidden if "use_for_https" is True. Hidden means that we cannot change value, but we can access to it in read only mode. Inside, we add two variable with calculated default value (with variable type). So, if user set "use_for_https" to True, the default values of HTTPS configuration will be a copy of HTTP values. The use can change HTTPS values if needed. If user set "use_for_https" to False, the default values of HTTPS configuration will only be a copy of HTTP values. |
||
---|---|---|
config | ||
firefox | ||
firefox.png | ||
foxyproxy.png | ||
README.md |
Table of Contents
Summary
- [tutorial 001] An empty file (diff)
- [tutorial 002] A first variable (diff)
- [tutorial 003] A first variable (diff)
- [tutorial 004] The variable description (diff)
- [tutorial 005] A default value (diff)
- [tutorial 006] A variable with type choice (diff)
- [tutorial 007] Choice type is optional (diff)
- [tutorial 010] A family (diff)
- [tutorial 011] Conditional desactived family (diff)
- [tutorial 012] Conditional desactived family (diff)
- [tutorial 013] A sub family (diff)
- [tutorial 014] Family in "shorthand" mode (diff)
- [tutorial 015] Family in "shorthand" mode (diff)
- [tutorial 016] Family in "shorthand" mode (diff)
- [tutorial 017] Family in "shorthand" mode (diff)
- [tutorial 018] Family in "shorthand" mode (diff)
- [tutorial 020] A boolean variable (diff)
- [tutorial 021] Bases type is optional if default value (diff)
- [tutorial 022] A variable in "shorthand" mode (diff)
- [tutorial 023] Conditional hidden family and calculated default value (diff)
Description
Conditional hidden family and calculated default value
Add a sub family "https_proxy" which will be hidden if "use_for_https" is True.
Hidden means that we cannot change value, but we can access to it in read only mode. Inside, we add two variable with calculated default value (with variable type).
So, if user set "use_for_https" to True, the default values of HTTPS configuration will be a copy of HTTP values. The use can change HTTPS values if needed.
If user set "use_for_https" to False, the default values of HTTPS configuration will only be a copy of HTTP values.
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
disabled:
variable: _.proxy_mode
when_not: '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
firefox/20-manual.yml
---
manual:
use_for_https: true # Also use this proxy for HTTPS
https_proxy: # HTTPS Proxy
address:
description: HTTPS address
type: domainname
params:
allow_ip: true
port:
description: HTTPS Port
type: port
default: 8080
Generated documentation
foo@bar:~$ rougail -v 1.1 -m firefox/ -o doc -do github
Variables
Variable | Description |
---|---|
proxy_modechoice standard 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
basic
disabled
Disabled: when the variable "proxy_mode" hasn't the value "Manual proxy configuration".
HTTP Proxy
basic
Variable | Description |
---|---|
manual.http_proxy.addressdomainname basic mandatory |
HTTP address. Validator: the domain name can be an IP |
manual.http_proxy.portport standard mandatory |
HTTP Port. Default: 8080 |
Variable | Description |
---|---|
manual.use_for_httpsboolean standard mandatory |
Also use this proxy for HTTPS. Default: True |
HTTPS Proxy
basic
Variable | Description |
---|---|
manual.https_proxy.addressdomainname basic mandatory |
HTTPS address. Validator: the domain name can be an IP |
manual.https_proxy.portport standard mandatory |
HTTPS Port. Default: 8080 |
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
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) ┗━━ - manual.https_proxy.address (HTTPS 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
🛑 ERRORS ┣━━ The following variables are mandatory but have no value: ┗━━ - manual.https_proxy.address (HTTPS address)
Output in read write mode
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/03/config.yaml --exporter.read_write
🛑 ERRORS ┣━━ The following variables are mandatory but have no value: ┗━━ - manual.https_proxy.address (HTTPS address)
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 ┣━━ The following variables are mandatory but have no value: ┗━━ - manual.https_proxy.address (HTTPS address)
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
Description
If "use_for_https" is false, HTTPS variables are visible in read only mode and in read write mode.
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/05/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: http.proxy.net ┃ ┗━━ 📓 port: 3128 (8080) ┣━━ 📓 use_for_https: False (True) ┗━━ 📂 https_proxy ┣━━ 📓 address: https.proxy.net ┗━━ 📓 port: 8080