No description
Find a file
2026-04-18 21:49:28 +02:00
config [tutorial v1.1_200] Variable calculation with propertyerror (config and doc) 2026-04-18 21:49:28 +02:00
firefox [tutorial v1.1_150] A variable with custom validation 2026-04-18 21:48:53 +02:00
foxyproxy [tutorial v1.1_200] Variable calculation with propertyerror 2026-04-18 21:49:28 +02:00
types/proxy [tutorial v1.1_083] Redefine other parameter in custom type 2026-04-18 21:47:47 +02:00
CHANGELOG.md [tutorial v1.1_200] Variable calculation with propertyerror (config and doc) 2026-04-18 21:49:28 +02:00
DOCUMENTATION.md [tutorial v1.1_200] Variable calculation with propertyerror (config and doc) 2026-04-18 21:49:28 +02:00
firefox.png [tutorial v1.1_140] A boolean variable (config and doc) 2026-04-18 21:48:40 +02:00
foxyproxy.png [init] Discover Rougail 2026-04-18 21:45:41 +02:00
install.txt [init] Discover Rougail 2026-04-18 21:45:41 +02:00
README.md [tutorial v1.1_200] Variable calculation with propertyerror (config and doc) 2026-04-18 21:49:28 +02:00
tree.html [tutorial v1.1_200] Variable calculation with propertyerror (config and doc) 2026-04-18 21:49:28 +02:00

[tutorial v1.1_200] Variable calculation with propertyerror

Read the tutorial "Variable calculation with propertyerror" 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_200

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
├── foxyproxy
│   └── 00-foxyproxy.yml
└── types
    └── proxy
        └── 00-type.yml


Contents of the foxyproxy/00-foxyproxy.yml file

%YAML 1.2
---
version: 1.1

proxies:
  description: Proxy configuration
  _type: leadership

  title:
    description: Title or Description
    mandatory: false

  type:
    description: Proxy Type
    choices:
      - HTTP
      - HTTPS/SSL
      - SOCKS4
      - SOCKS5
      - PAC URL
      - WPAD
      - System (use system settings)
      - Direct (no proxy)
    default: Direct (no proxy)

  color:
    description: Color
    regexp: ^#(?:[0-9a-f]{3}){1,2}$
    default:
      jinja: >-
        #{%- for i in range(6) -%}{{- '0123456789abcdef' | random -}}{%- endfor -%}        
      description: random color value
    auto_save: true

  address:
    description: IP address, DNS name, server name
    type: domainname
    params:
      allow_ip: true
      allow_without_dot: true
    default:
      description: copy HTTP address if proxy is not "Manual"
      variable: firefox.manual.http_proxy.address
      propertyerror: false
    disabled:
      jinja: |-
        {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}        
      return_type: boolean
      description: |-
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5        

  port:
    description: Port
    type: port
    default:
      description: copy HTTP port if proxy is not "Manual"
      variable: firefox.manual.http_proxy.port
      propertyerror: false
    disabled:
      jinja: |-
        {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}        
      return_type: boolean
      description: |-
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5        

  url:
    description: URL
    type: web_address
    default:
      description: copy HTTP address if proxy is "Auto"
      variable: firefox.auto
      propertyerror: false
    disabled:
      jinja: |-
        {{ _.type not in ['PAC URL', 'WPAD'] }}        
      return_type: boolean
      description: |-
        if type is not in:
        - PAC URL
        - WPAD        
...


Let's generate the documentation

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc

View the documentation file


Let's generate the changelog

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

View the changelog file


User datas

Example 1

config/01/config.yml

---

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml

Note

Caption:

  • Variable
  • Default value

Variables:

  • 📂 firefox (Firefox)
    • 📓 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
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration): []

Example 2

config/02/config.yml

---
foxyproxy:
  proxies:
    - title: My company
      type: HTTP
      color: '#66cc66'
      address: proxy.company.net
      port: 8080

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --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:

  • 📂 firefox (Firefox)
    • 📓 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
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration)
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): My company ← loaded from the YAML file "config/02/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #66cc66 ← loaded from the YAML file "config/02/config.yml"
        • 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
        • 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"

Example 3

config/03/config.yml

---
firefox:
  proxy_mode: Manual proxy configuration
  manual:
    http_proxy:
      address: http.proxy.net
      port: 3128
    use_for_https: false
    https_proxy:
      address: https.proxy.net
foxyproxy:
  proxies:
    - title: My company
      type: HTTP
      color: '#66cc66'

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml

Note

Caption:

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

Variables:

  • 📂 firefox (Firefox)
    • 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/03/config.yml" ( No proxy)
    • 📂 manual (Manual proxy configuration)
      • 📂 http_proxy (HTTP Proxy)
        • 📓 address (HTTP proxy address): http.proxy.net ← loaded from the YAML file "config/03/config.yml"
        • 📓 port (HTTP proxy port): 3128 ← loaded from the YAML file "config/03/config.yml" ( 8080)
      • 📓 use_for_https (Also use this proxy for HTTPS): false ← loaded from the YAML file "config/03/config.yml" ( true)
      • 📂 https_proxy (HTTPS Proxy)
        • 📓 address (HTTPS proxy address): https.proxy.net ← loaded from the YAML file "config/03/config.yml" ( http.proxy.net)
        • 📓 port (HTTPS proxy port): 3128
      • 📂 socks_proxy (SOCKS Proxy)
        • 📓 address (SOCKS proxy address): http.proxy.net
        • 📓 port (SOCKS proxy port): 3128
        • 📓 version (SOCKS host version used by proxy): v5
    • 📓 no_proxy (Address for which proxy will be desactivated): []
    • 📓 prompt_authentication (Prompt for authentication if password is saved): true
    • 📓 proxy_dns_socks5 (Use proxy DNS when using SOCKS v5): false
    • 📂 dns_over_https (DNS over HTTPS)
      • 📓 enable_dns_over_https (Enable DNS over HTTPS): false
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration)
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): My company ← loaded from the YAML file "config/03/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #66cc66 ← loaded from the YAML file "config/03/config.yml"
        • 📓 address (IP address, DNS name, server name): http.proxy.net
        • 📓 port (Port): 3128