From 2e608ee80498e6640570f9775fec3c77fa07a034 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 9 Nov 2025 19:31:11 +0100 Subject: [PATCH] [tutorial v1.1_020)] A variable with type "domainname" (config and doc) --- README.md | 106 ++++++++++++++++++++-------------- config/01/config.yml | 3 + config/01/output_ro.html | 14 +++-- config/02/cmd_invalid.txt | 1 + config/02/config.yml | 2 +- config/02/output_invalid.html | 3 + config/02/output_ro.html | 16 +++-- config/03/cmd_invalid.txt | 1 + config/03/config.yml | 3 +- config/03/output_invalid.html | 3 + config/03/output_ro.html | 16 ++--- tree.html | 8 +-- 12 files changed, 101 insertions(+), 75 deletions(-) create mode 100644 config/02/cmd_invalid.txt create mode 100644 config/02/output_invalid.html create mode 100644 config/03/cmd_invalid.txt create mode 100644 config/03/output_invalid.html diff --git a/README.md b/README.md index ebbfd0bb..39ad96f7 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_011] Or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_011/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_011~1..v1.1_011)) +- [[tutorial v1.1_012] Putting a variable inside of a family or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_012/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_012~1..v1.1_012)) -# [tutorial v1.1_012)] Putting a variable inside of a family or a sub family +# [tutorial v1.1_020)] A variable with type "domainname" -[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_012~1..v1.1_012) +[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020) ## 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_012 +git switch --detach v1.1_020 ``` ## Structure @@ -37,10 +37,10 @@ git switch --detach v1.1_012

-.
- └── firefox
-     ├── 00-proxy.yml
-     └── 10-manual.yml
+.
+ └── firefox
+     ├── 00-proxy.yml
+     └── 10-manual.yml


Contents of the firefox/10-manual.yml file @@ -54,7 +54,9 @@ manual: # Manual proxy configuration http_proxy: # HTTP Proxy - address: # HTTP address + address: + description: HTTP address + type: domainname ... ``` @@ -79,20 +81,20 @@ rougail -m firefox/ -o doc -| Variable                                                                                        | Description                                                                                     | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **manual.http_proxy.address**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. | +| Variable                                                                                            | Description                                                                                         | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **manual.http_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. | ### Let's generate the changelog ```shell rougail -m firefox/ -o doc --doc.contents changelog ``` -#### New variable +#### Modified variable -| Variable                                                                                        | Description                                                                                     | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **manual.http_proxy.address**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. | +| Variable                                                                                                                    | Description                                                                                                                 | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **manual.http_proxy.address**
~~`string`~~ [`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. | ## User datas @@ -104,17 +106,24 @@ rougail -m firefox/ -o doc --doc.contents changelog ```yml --- +manual: + http_proxy: + address: example.net ``` #### Output ```shell rougail -m firefox/ -u yaml -yf config/01/config.yml ``` -
🛑 ERRORS
-┗━━ The following variables are mandatory but have no value:
-    ┗━━ Manual proxy configuration
-        ┗━━ HTTP Proxy
-            ┗━━ HTTP address
+
╭──────── Caption ────────╮
+│ Variable Default value  │
+│          Modified value │
+╰─────────────────────────╯
+Variables:
+┣━━ 📓 Configure Proxy Access to the Internet: No proxy
+┗━━ 📂 Manual proxy configuration
+    ┗━━ 📂 HTTP Proxy
+        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/01/config.yml"
 
### Example 2 @@ -125,22 +134,28 @@ rougail -m firefox/ -u yaml -yf config/01/config.yml --- manual: http_proxy: - address: example.net + address: 192.168.0.1 ``` #### Output ```shell rougail -m firefox/ -u yaml -yf config/02/config.yml ``` -
╭──────── Caption ────────╮
-│ Variable Default value  │
-│          Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: No proxy
-┗━━ 📂 Manual proxy configuration
-    ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/02/config.yml"
+
🔔 WARNINGS
+┗━━ the value "192.168.0.1" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"
+🛑 ERRORS
+┗━━ The following variables are mandatory but have no value:
+    ┗━━ Manual proxy configuration
+        ┗━━ HTTP Proxy
+            ┗━━ HTTP address
+
+#### Output when invalid user datas is an error + +```shell +rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_datas_error +``` +
🛑 ERRORS
+┗━━ the value "192.168.0.1" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"
 
### Example 3 @@ -151,8 +166,7 @@ Variables: --- manual: http_proxy: - address: example.net - port: 3128 + address: not a valid domain name ``` #### Output @@ -160,17 +174,21 @@ manual: rougail -m firefox/ -u yaml -yf config/03/config.yml ```
🔔 WARNINGS
-┗━━ variable or family "manual.http_proxy.port" does not exist, it will be ignored when loading from the YAML file "config/03/config.yml"
-╭──────── Caption ────────╮
-│ Variable Default value  │
-│          Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: No proxy
-┗━━ 📂 Manual proxy configuration
-    ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/03/config.yml"
+┗━━ the value "not a valid domain name" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must have dot, it will be ignored when loading from the YAML file "config/03/config.yml"
+🛑 ERRORS
+┗━━ The following variables are mandatory but have no value:
+    ┗━━ Manual proxy configuration
+        ┗━━ HTTP Proxy
+            ┗━━ HTTP address
+
+#### Output when invalid user datas is an error + +```shell +rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_datas_error +``` +
🛑 ERRORS
+┗━━ the value "not a valid domain name" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must have dot, it will be ignored when loading from the YAML file "config/03/config.yml"
 
-- [[tutorial v1.1_020] A variable with type "domainname"](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)) +- [[tutorial v1.1_021] A variable with type's parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_021/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_021~1..v1.1_021)) diff --git a/config/01/config.yml b/config/01/config.yml index ed97d539..22422a2f 100644 --- a/config/01/config.yml +++ b/config/01/config.yml @@ -1 +1,4 @@ --- +manual: + http_proxy: + address: example.net diff --git a/config/01/output_ro.html b/config/01/output_ro.html index ec666c15..d298e7b1 100644 --- a/config/01/output_ro.html +++ b/config/01/output_ro.html @@ -1,6 +1,10 @@ -
🛑 ERRORS
-┗━━ The following variables are mandatory but have no value:
-    ┗━━ Manual proxy configuration
-        ┗━━ HTTP Proxy
-            ┗━━ HTTP address
+
╭──────── Caption ────────╮
+│ Variable Default value  │
+│          Modified value │
+╰─────────────────────────╯
+Variables:
+┣━━ 📓 Configure Proxy Access to the Internet: No proxy
+┗━━ 📂 Manual proxy configuration
+    ┗━━ 📂 HTTP Proxy
+        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/01/config.yml"
 
diff --git a/config/02/cmd_invalid.txt b/config/02/cmd_invalid.txt new file mode 100644 index 00000000..0bbf6053 --- /dev/null +++ b/config/02/cmd_invalid.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_datas_error \ No newline at end of file diff --git a/config/02/config.yml b/config/02/config.yml index 22422a2f..cbc99036 100644 --- a/config/02/config.yml +++ b/config/02/config.yml @@ -1,4 +1,4 @@ --- manual: http_proxy: - address: example.net + address: 192.168.0.1 diff --git a/config/02/output_invalid.html b/config/02/output_invalid.html new file mode 100644 index 00000000..1522c120 --- /dev/null +++ b/config/02/output_invalid.html @@ -0,0 +1,3 @@ +
🛑 ERRORS
+┗━━ the value "192.168.0.1" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"
+
diff --git a/config/02/output_ro.html b/config/02/output_ro.html index a0d9438c..7619b3bb 100644 --- a/config/02/output_ro.html +++ b/config/02/output_ro.html @@ -1,10 +1,8 @@ -
╭──────── Caption ────────╮
-│ Variable Default value  │
-│          Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: No proxy
-┗━━ 📂 Manual proxy configuration
-    ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/02/config.yml"
+
🔔 WARNINGS
+┗━━ the value "192.168.0.1" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"
+🛑 ERRORS
+┗━━ The following variables are mandatory but have no value:
+    ┗━━ Manual proxy configuration
+        ┗━━ HTTP Proxy
+            ┗━━ HTTP address
 
diff --git a/config/03/cmd_invalid.txt b/config/03/cmd_invalid.txt new file mode 100644 index 00000000..ffde9149 --- /dev/null +++ b/config/03/cmd_invalid.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_datas_error \ No newline at end of file diff --git a/config/03/config.yml b/config/03/config.yml index da3353ac..bdc052ca 100644 --- a/config/03/config.yml +++ b/config/03/config.yml @@ -1,5 +1,4 @@ --- manual: http_proxy: - address: example.net - port: 3128 + address: not a valid domain name diff --git a/config/03/output_invalid.html b/config/03/output_invalid.html new file mode 100644 index 00000000..f04dbb17 --- /dev/null +++ b/config/03/output_invalid.html @@ -0,0 +1,3 @@ +
🛑 ERRORS
+┗━━ the value "not a valid domain name" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must have dot, it will be ignored when loading from the YAML file "config/03/config.yml"
+
diff --git a/config/03/output_ro.html b/config/03/output_ro.html index de915a0e..00845602 100644 --- a/config/03/output_ro.html +++ b/config/03/output_ro.html @@ -1,12 +1,8 @@
🔔 WARNINGS
-┗━━ variable or family "manual.http_proxy.port" does not exist, it will be ignored when loading from the YAML file "config/03/config.yml"
-╭──────── Caption ────────╮
-│ Variable Default value  │
-│          Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: No proxy
-┗━━ 📂 Manual proxy configuration
-    ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/03/config.yml"
+┗━━ the value "not a valid domain name" is an invalid domain name for "manual.http_proxy.address" (HTTP address), must have dot, it will be ignored when loading from the YAML file "config/03/config.yml"
+🛑 ERRORS
+┗━━ The following variables are mandatory but have no value:
+    ┗━━ Manual proxy configuration
+        ┗━━ HTTP Proxy
+            ┗━━ HTTP address
 
diff --git a/tree.html b/tree.html index a454d685..a20586c6 100644 --- a/tree.html +++ b/tree.html @@ -25,10 +25,10 @@

Directory Tree

- .
- └── firefox
-     ├── 00-proxy.yml
-     └── 10-manual.yml
+ .
+ └── firefox
+     ├── 00-proxy.yml
+     └── 10-manual.yml


2 directories, 2 files