From 39063db64c6cfd7e1cca625f7b87f6a435324a60 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 9 Mar 2026 09:12:09 +0100 Subject: [PATCH] [tutorial v1.1_010] A variable with a list of possible values (config and doc) --- README.md | 82 +++++++++++++++++++++++++++-------- config/03/config.yml | 2 +- config/03/output_ro.html | 5 ++- config/04/cmd_invalid.txt | 1 + config/04/cmd_ro.txt | 1 + config/04/config.yml | 2 + config/04/output_invalid.html | 7 +++ config/04/output_ro.html | 13 ++++++ tree.html | 6 +-- 9 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 config/04/cmd_invalid.txt create mode 100644 config/04/cmd_ro.txt create mode 100644 config/04/config.yml create mode 100644 config/04/output_invalid.html create mode 100644 config/04/output_ro.html diff --git a/README.md b/README.md index d8f3a665..7c05eee1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ - [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) -- [[tutorial v1.1_002] Describe the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_002/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003)) +- [[tutorial v1.1_003] Set a default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010)) -# [tutorial v1.1_003] Set a default value +# [tutorial v1.1_010] A variable with a list of possible values -[Read the tutorial "Set a default value" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#set-a-default-value) +[Read the tutorial "A variable with a list of possible values" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/choice.html#a-variable-with-a-list-of-possible-values) ## Screenshot @@ -29,7 +29,7 @@ pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user- Then switch to the tutorial page: ```shell -git switch --detach v1.1_003 +git switch --detach v1.1_010 ``` ## Structure @@ -37,9 +37,9 @@ git switch --detach v1.1_003

-.
- └── firefox
-     └── 00-proxy.yml
+.
+ └── firefox
+     └── 00-proxy.yml


Contents of the firefox/00-proxy.yml file @@ -49,7 +49,15 @@ Contents of the firefox/00-proxy.yml file --- version: 1.1 -proxy_mode: No proxy # Configure Proxy Access to the Internet +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 ... ``` @@ -60,9 +68,9 @@ proxy_mode: No proxy # Configure Proxy Access to the Internet ```shell rougail -m firefox/ -o doc ``` -| Variable | Description | -|------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| -| **proxy_mode**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Default**: No proxy | +| Variable | Description | +|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **proxy_mode**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `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 | *** @@ -73,9 +81,9 @@ rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_jso ``` #### Modified variable -| Variable | Description | -|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| -| **proxy_mode**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Default**: No proxy | +| Variable | Description | +|------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **proxy_mode**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `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 | *** @@ -140,7 +148,7 @@ Variables: ```yml --- -proxy_mode: foo +proxy_mode: Manual proxy configuration ``` *** @@ -157,9 +165,49 @@ rougail -m firefox/ -u yaml -yf config/03/config.yml > - (:hourglass_flowing_sand: Original default value) Variables: -- :notebook: proxy_mode (Configure Proxy Access to the Internet): foo ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy) +- :notebook: proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy) + +*** +### Example 4 + +#### config/04/config.yml + + +```yml +--- +proxy_mode: foo +``` + +*** +#### Output + +```shell +rougail -m firefox/ -u yaml -yf config/04/config.yml +``` +> [!WARNING] +> +> - proxy_mode (Configure Proxy Access to the Internet): :bell: the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it will be ignored when loading from the YAML file "config/04/config.yml" + +> [!NOTE] +> +> **Caption:** +> - Variable +> - Default value + +Variables: +- :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy + +*** +#### Output when invalid user data is an error + +```shell +rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error +``` +> [!CAUTION] +> +> - proxy_mode (Configure Proxy Access to the Internet): :stop_sign: the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it has been loading from the YAML file "config/04/config.yml" *** -- [[tutorial v1.1_010] A variable with a list of possible values](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010)) +- [[tutorial v1.1_020] Creating a new family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_020/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020)) diff --git a/config/03/config.yml b/config/03/config.yml index e3fa25da..74edb225 100644 --- a/config/03/config.yml +++ b/config/03/config.yml @@ -1,2 +1,2 @@ --- -proxy_mode: foo +proxy_mode: Manual proxy configuration diff --git a/config/03/output_ro.html b/config/03/output_ro.html index 5d88bf40..352ec43e 100644 --- a/config/03/output_ro.html +++ b/config/03/output_ro.html @@ -3,6 +3,7 @@ │ (⏳ Original default value) │ ╰──────────────────────────────────────╯ Variables: -┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): foo ◀ loaded from - the YAML file "config/03/config.yml" (⏳ No proxy) +┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy + configuration ◀ loaded from the YAML file "config/03/config.yml" (⏳ No + proxy) diff --git a/config/04/cmd_invalid.txt b/config/04/cmd_invalid.txt new file mode 100644 index 00000000..f5faec8b --- /dev/null +++ b/config/04/cmd_invalid.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error \ No newline at end of file diff --git a/config/04/cmd_ro.txt b/config/04/cmd_ro.txt new file mode 100644 index 00000000..4d43eae1 --- /dev/null +++ b/config/04/cmd_ro.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/04/config.yml \ No newline at end of file diff --git a/config/04/config.yml b/config/04/config.yml new file mode 100644 index 00000000..e3fa25da --- /dev/null +++ b/config/04/config.yml @@ -0,0 +1,2 @@ +--- +proxy_mode: foo diff --git a/config/04/output_invalid.html b/config/04/output_invalid.html new file mode 100644 index 00000000..4c586eef --- /dev/null +++ b/config/04/output_invalid.html @@ -0,0 +1,7 @@ +
🛑 Caution
+┗━━ proxy_mode (Configure Proxy Access to the Internet): 🛑 the value "foo" is 
+    an invalid choice, only "Auto-detect proxy settings for this network", 
+    "Automatic proxy configuration URL", "Manual proxy configuration", "No 
+    proxy" and "Use system proxy settings" are allowed, it has been loading from
+    the YAML file "config/04/config.yml"
+
diff --git a/config/04/output_ro.html b/config/04/output_ro.html new file mode 100644 index 00000000..cb7632b0 --- /dev/null +++ b/config/04/output_ro.html @@ -0,0 +1,13 @@ +
🔔 Warning
+┗━━ proxy_mode (Configure Proxy Access to the Internet): 🔔 the value "foo" is 
+    an invalid choice, only "Auto-detect proxy settings for this network", 
+    "Automatic proxy configuration URL", "Manual proxy configuration", "No 
+    proxy" and "Use system proxy settings" are allowed, it will be ignored when 
+    loading from the YAML file "config/04/config.yml"
+
+╭─────── Caption ────────╮
+│ Variable Default value │
+╰────────────────────────╯
+Variables:
+┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
+
diff --git a/tree.html b/tree.html index 0fcfeacd..ef430486 100644 --- a/tree.html +++ b/tree.html @@ -1,5 +1,5 @@

-.
- └── firefox
-     └── 00-proxy.yml
+.
+ └── firefox
+     └── 00-proxy.yml


\ No newline at end of file