diff --git a/README.md b/README.md
index 4e7f9397..3cd3a7f7 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_002~1..v1.1_002))
+- [[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_003~1..v1.1_003))
-# [tutorial v1.1_003)] Set a default value
+# [tutorial v1.1_004)] Limits the possible values for the variable
-[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003)
+[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_004~1..v1.1_004)
## 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_004
```
## 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,7 +68,7 @@ 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 |
+| **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 |
### Let's generate the changelog
@@ -69,9 +77,9 @@ rougail -m firefox/ -o doc --doc.contents changelog
```
#### 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**
~~`string`~~ [`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 |
## User datas
@@ -123,7 +131,7 @@ Variables:
```yml
---
-proxy_mode: foo
+proxy_mode: Manual proxy configuration
```
#### Output
@@ -135,8 +143,40 @@ rougail -m firefox/ -u yaml -yf config/03/config.yml
│ (⏳ Original default value) │
╰──────────────────────────────────────╯
Variables:
-┗━━ 📓 Configure Proxy Access to the Internet: foo ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy)
+┗━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy)
+
+### Example 4
+
+#### config/04/config.yml
+
+
+```yml
+---
+proxy_mode: foo
+```
+#### Output
+
+```shell
+rougail -m firefox/ -u yaml -yf config/04/config.yml
+```
+🔔 WARNINGS
+┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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:
+┗━━ 📓 Configure Proxy Access to the Internet: No proxy
+
+#### Output when invalid user datas is an error
+
+```shell
+rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_datas_error
+```
+🛑 ERRORS
+┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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"
-- [[tutorial v1.1_004] Limits the possible values for the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_004/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_004~1..v1.1_004))
+- [[tutorial v1.1_010] Creating a new family](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))
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 d017dd24..650fbbd7 100644
--- a/config/03/output_ro.html
+++ b/config/03/output_ro.html
@@ -3,5 +3,5 @@
│ (⏳ Original default value) │
╰──────────────────────────────────────╯
Variables:
-┗━━ 📓 Configure Proxy Access to the Internet: foo ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy)
+┗━━ 📓 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..970b0bb1
--- /dev/null
+++ b/config/04/cmd_invalid.txt
@@ -0,0 +1 @@
+rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_datas_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..0ca13edb
--- /dev/null
+++ b/config/04/output_invalid.html
@@ -0,0 +1,4 @@
+🛑 ERRORS
+┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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"
+
diff --git a/config/04/output_ro.html b/config/04/output_ro.html
new file mode 100644
index 00000000..e5bc6c7f
--- /dev/null
+++ b/config/04/output_ro.html
@@ -0,0 +1,9 @@
+🔔 WARNINGS
+┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), 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:
+┗━━ 📓 Configure Proxy Access to the Internet: No proxy
+
diff --git a/tree.html b/tree.html
index bb866399..4be7e528 100644
--- a/tree.html
+++ b/tree.html
@@ -25,9 +25,9 @@
Directory Tree
- .
- └── firefox
- └── 00-proxy.yml
+ .
+ └── firefox
+ └── 00-proxy.yml
2 directories, 1 file