update dynfam

This commit is contained in:
gwen 2026-01-22 18:50:29 +01:00
parent 10eee79dc2
commit ed09bfd4ae

View file

@ -49,6 +49,8 @@ in one shot?
The interesting point here is that they are very similar in our firefox's The interesting point here is that they are very similar in our firefox's
configuration and that we can do batch processing. configuration and that we can do batch processing.
.. index:: dynamic family
Family: a dynamic family Family: a dynamic family
---------------------------- ----------------------------
@ -216,11 +218,11 @@ Here is our dynamic familiy in situation in the :file:`firefox/20-manual.yml` st
When we launch the Rougail CLI, we can see the concrete families When we launch the Rougail CLI, we can see the concrete families
and variables that have been created: and variables that have been created:
Voici le user data file sur lequel nous allons lancer la Rougail CLI: Here is the user data file on which we will launch the Rougail CLI:
.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_060/config/01/config.yml .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_060/config/01/config.yml
:language: yaml :language: yaml
:caption: In this :file:`config/01/config.yml` user data file, we assign values to variables that have been disabled :caption: The :file:`config/01/config.yml` user data file
.. ..
--- ---
@ -248,7 +250,7 @@ The Rougail CLI outputs this:
:class: output :class: output
.. ..
rougail -m structfile/proxy.yml -u yaml --yaml.filename userdata/proxy.yml rougail -m firefox/proxy.yml -u yaml --yaml.filename config/proxy.yml
╭─────────────────── Caption ────────────────────╮ ╭─────────────────── Caption ────────────────────╮
│ Variable Default value │ │ Variable Default value │
│ Unmodifiable variable Modified value │ │ Unmodifiable variable Modified value │
@ -274,79 +276,125 @@ We can see that the dynamic families have been created:
and, as we expected, containing an address and a port. and, as we expected, containing an address and a port.
A conditional disabled variable with dynamic identifier
--------------------------------------------------------
GWEN .. type-along:: For those who follow the tutorial with the help of the git repository
.. todo:: déplacer ce hidden dans une autre page Now you need to checkout the `v1.1_061` version::
.. _conditional_hidden_family: git switch --detach v1.1_061
A conditional hidden familiy Here is the final version of the HTTPS and SOCKS structure file:
--------------------------------
Here is the final YAML version of the HTTPS and SOCKS proxy families:
We have added: We have added:
- a conditional hidden family property - a conditional hidden family property
- a default value - a default value
.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_037/firefox/20-manual.yml .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/firefox/20-manual.yml
:language: yaml :language: yaml
:caption: firefox/20-proxy.yml :caption: The final :file:`firefox/20-proxy.yml` structure file
.. ..
%YAML 1.2
--- ---
version: 1.1
manual: manual:
use_for_https: use_for_https: true # Also use this proxy for HTTPS
description: Also use this proxy for HTTPS
default: true
"{{ identifier }}_proxy": '{{ identifier }}_proxy':
description: "{{ identifier }} Proxy" description: '{{ identifier }} Proxy'
hidden:
variable: _.use_for_https
dynamic: dynamic:
- HTTPS - HTTPS
- SOCKS - SOCKS
hidden:
variable: manual.use_for_https
address: address:
description: "{{ identifier }} address" description: '{{ identifier }} address'
default: default:
variable: manual.http_proxy.address variable: __.http_proxy.address
port: port:
description: "{{ identifier }} port" description: '{{ identifier }} port'
default: default:
variable: manual.http_proxy.port variable: __.http_proxy.port
version:
description: SOCKS host version used by proxy
choices:
- v4
- v5
default: v5
disabled:
type: identifier
when: HTTPS
...
The conditional property is this one: The disabled `property` is assigned here to the `version` variable
in the case where the identifier is HTTPS.
.. code-block:: yaml ..
version:
description: SOCKS host version used by proxy
choices:
- v4
- v5
default: v5
disabled:
type: identifier
when: HTTPS
hidden: .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/config.yml
variable: manual.use_for_https :language: yaml
:caption: The :file:`config/01/config.yml` user data file
it uses `use_for_https` variable: ..
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
port: 3128
use_for_https: false
https_proxy:
address: https.proxy.net
.. code-block:: yaml .. raw:: html
:url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/cmd_ro.txt
:class: terminal
..
rougail -m firefox/ -u yaml -yf config/01/config.yml
use_for_https: The Rougail CLI outputs this:
description: Also use this proxy for HTTPS
default: true .. raw:: html
:url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/output_ro.html
:class: output
..
Variables:
┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy)
┗━━ 📂 Manual proxy configuration
┣━━ 📂 HTTP Proxy
┃ ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml"
┃ ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file "config/01/config.yml" (⏳ 8080)
┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true)
┣━━ 📂 HTTPS Proxy
┃ ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net)
┃ ┗━━ 📓 HTTPS port: 3128
┗━━ 📂 SOCKS Proxy
┣━━ 📓 SOCKS address: http.proxy.net
┣━━ 📓 SOCKS port: 3128
┗━━ 📓 SOCKS host version used by proxy: v5
.. keypoints:: Key points .. keypoints:: Key points
- We now know what a dynamic family is, with its identifier. - We now know how to build a dynamic family is, with setting its identifier.
- we now how to create default values for a variable that is calculated - we have a new use case for the `disabled` property.
because it retrieves the value of another variable. We know how to disable conditionaly a dynamic family.
- we know how to hide conditionaly a family with the same mechanism,
that is a calculated value. It is calculated because there is a dependancy
over another variable.
We will see other types of calculation in the next section.