rougail-tutorials/README.md

22 KiB

[tutorial v1.1_141] A choice variable

Read the tutorial "A choice variable" in 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_141

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
│   └── 60-dns_over_https.yml
└── types
    └── proxy
        └── 00_type.yml


Contents of the firefox/60-dns_over_https.yml file

%YAML 1.2
---
version: 1.1

dns_over_https:  # DNS over HTTPS

  enable_dns_over_https: false  # Enable DNS over HTTPS

  provider:
    description: Use Provider
    choices:
      - Cloudflare
      - NextDNS
      - Custom
    default: Cloudflare
    disabled:
      variable: _.enable_dns_over_https
      when: false
...


Let's generate the documentation

rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -o doc
Variable Description
proxy_mode
choice 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

Note

Path: manual
basic 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
basic

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

Note

Path: manual.https_proxy
standard hidden
Hidden: when the variable "Also use this proxy for HTTPS" has the value "true"

Variable Description
manual.https_proxy.address
domainname standard mandatory
Proxy address.
Validators:
• type domainname
• the domain name can be an IP
Default: the value of the variable "Proxy address"
manual.https_proxy.port
port standard mandatory
Proxy 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 "Proxy port"
SOCKS Proxy

Note

Path: manual.socks_proxy
standard

Variable Description
manual.socks_proxy.address
domainname standard mandatory
Proxy address.
Validators:
• type domainname
• the domain name can be an IP
Default: the value of the variable "Proxy address"
manual.socks_proxy.port
port standard mandatory
Proxy 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 "Proxy port"
manual.socks_proxy.version
choice standard mandatory
SOCKS host version used by proxy.
Choices:
• v4
• v5 ← (default)
Variable Description
auto
web address basic 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 standard 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 standard 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 advanced mandatory disabled
Use proxy DNS when using SOCKS v5.
Default: false
Disabled: if "Configure Proxy Access to the Internet" is not "Manual proxy configuration"
or "SOCKS host version used by proxy" is "v4"

DNS over HTTPS

Note

Path: dns_over_https
standard

Variable Description
dns_over_https.enable_dns_over_https
boolean standard mandatory
Enable DNS over HTTPS.
Default: false
dns_over_https.provider
choice standard mandatory disabled
Use Provider.
Choices:
• Cloudflare ← (default)
• NextDNS
• Custom
Disabled: when the variable "Enable DNS over HTTPS" has the value "false"

Let's generate the changelog

rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

New variable

Variable Description
dns_over_https.provider
choice standard mandatory disabled
Use Provider.
Choices:
• Cloudflare ← (default)
• NextDNS
• Custom
Disabled: when the variable "Enable DNS over HTTPS" has the value "false"

User datas

Example 1

config/01/config.yml

---

Output

rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml

Note

Caption:

  • Variable
  • Default value

Variables:

  • 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
  • 📂 dns_over_https (DNS over HTTPS)
    • 📓 enable_dns_over_https (Enable DNS over HTTPS): false

Example 2

config/02/config.yml

---
dns_over_https:
  enable_dns_over_https: true

Output

rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml

Note

Caption:

  • Variable
  • Default value
  • Modified value
  • ( Original default value)

Variables:

  • 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
  • 📂 dns_over_https (DNS over HTTPS)
    • 📓 enable_dns_over_https (Enable DNS over HTTPS): true ← loaded from the YAML file "config/02/config.yml" ( false)
    • 📓 provider (Use Provider): Cloudflare