From af177e1663024c1bcbc00b704ecd922984e53c3c Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 1 Dec 2025 22:21:36 +0100 Subject: [PATCH] [tutorial v1.1_030)] A variable with type "domainname" (config and doc) --- README.md | 98 ++++++++++++++++++++++------------- config/01/config.yml | 3 ++ config/01/output_ro.html | 9 ++-- config/02/cmd_invalid.txt | 1 + config/02/config.yml | 2 +- config/02/output_invalid.html | 4 ++ config/02/output_ro.html | 12 +++-- config/03/cmd_invalid.txt | 1 + config/03/config.yml | 3 +- config/03/output_invalid.html | 4 ++ config/03/output_ro.html | 13 +++-- tree.html | 8 +-- 12 files changed, 98 insertions(+), 60 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 8a7b0156..2fa90086 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ - [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) -- [[tutorial v1.1_021] Or a sub family](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)) +- [[tutorial v1.1_022] Putting a variable inside of a family or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_022/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022)) -# [tutorial v1.1_022)] Putting a variable inside of a family or a sub family +# [tutorial v1.1_030)] A variable with type "domainname" -[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022) +[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030) -[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/proxymode.html#putting-a-variable-inside-of-a-family-or-a-sub-family) +[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type-"domainname") ## Screenshot @@ -31,7 +31,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_022 +git switch --detach v1.1_030 ``` ## Structure @@ -39,10 +39,10 @@ git switch --detach v1.1_022

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


Contents of the firefox/10-manual.yml file @@ -56,7 +56,9 @@ manual: # Manual proxy configuration http_proxy: # HTTP Proxy - address: # HTTP address + address: + description: HTTP address + type: domainname ... ``` @@ -81,20 +83,20 @@ rougail -m firefox/ -o doc > > **manual.http_proxy** -| 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.
**Validator**: type domainname | ### 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**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address.
**Validator**: type domainname | ## User datas @@ -106,20 +108,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 ``` -
╭─────── Caption ────────╮
-│ Variable Default value │
-╰────────────────────────╯
+
╭──────── Caption ────────╮
+│ Variable Default value  │
+│          Modified value │
+╰─────────────────────────╯
 Variables:
 ┣━━ 📓 Configure Proxy Access to the Internet: No proxy
 ┗━━ 📂 Manual proxy configuration
     ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: null
+        ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/01/config.yml"
 
### Example 2 @@ -130,22 +136,33 @@ Variables: --- 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 │
-╰─────────────────────────╯
+
🔔 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"
+╭─────── Caption ────────╮
+│ Variable Default 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"
+        ┗━━ 📓 HTTP address: null
+
+#### 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 @@ -156,8 +173,7 @@ Variables: --- manual: http_proxy: - address: example.net - port: 3128 + address: not a valid domain name ``` #### Output @@ -165,18 +181,26 @@ 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 │
-╰─────────────────────────╯
+┗━━ 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"
+╭─────── Caption ────────╮
+│ Variable Default 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"
+        ┗━━ 📓 HTTP address: null
+
+#### 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_030] A variable with type "domainname"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_030/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030)) +- [[tutorial v1.1_031] A variable with type's parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_031/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_031~1..v1.1_031)) 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 83653731..9dd3a050 100644 --- a/config/01/output_ro.html +++ b/config/01/output_ro.html @@ -1,9 +1,10 @@ -
╭─────── Caption ────────╮
-│ Variable Default value │
-╰────────────────────────╯
+
╭──────── Caption ────────╮
+│ Variable Default value  │
+│          Modified value │
+╰─────────────────────────╯
 Variables:
 ┣━━ 📓 Configure Proxy Access to the Internet: No proxy
 ┗━━ 📂 Manual proxy configuration
     ┗━━ 📂 HTTP Proxy
-        ┗━━ 📓 HTTP address: null
+        ┗━━ 📓 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..874f7c16 --- /dev/null +++ b/config/02/output_invalid.html @@ -0,0 +1,4 @@ +
🛑 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 94ab983a..5766073d 100644 --- a/config/02/output_ro.html +++ b/config/02/output_ro.html @@ -1,10 +1,12 @@ -
╭──────── Caption ────────╮
-│ Variable Default value  │
-│          Modified value │
-╰─────────────────────────╯
+
🔔 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"
+╭─────── Caption ────────╮
+│ Variable Default 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"
+        ┗━━ 📓 HTTP address: null
 
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..38601e48 --- /dev/null +++ b/config/03/output_invalid.html @@ -0,0 +1,4 @@ +
🛑 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 ecdd5c02..cd61a5be 100644 --- a/config/03/output_ro.html +++ b/config/03/output_ro.html @@ -1,13 +1,12 @@
🔔 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 │
-╰─────────────────────────╯
+┗━━ 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"
+╭─────── Caption ────────╮
+│ Variable Default 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"
+        ┗━━ 📓 HTTP address: null
 
diff --git a/tree.html b/tree.html index a040cdf7..ad160607 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