rougail-tutorials/README.md

204 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- [List of all the tutorial steps](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
- [[Previous tutorial v1.1_131] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_131/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_132~1..v1.1_132))
# [tutorial v1.1_132] A Jinja conditional disabled boolean variable
- [Read the tutorial "A Jinja conditional disabled boolean variable" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/whatsnext.html#a-jinja-conditional-disabled-boolean-variable)
- [View the changes in the files](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_132~1..v1.1_132)
## Screenshot
<img src="firefox.png" width=50% height=50% alt="Firefox Proxy setting"/>
## Clone and install
To test this tutorial, you need to download this repository and install Rougail:
```shell
git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
. venv_rougail/bin/activate
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml
```
Then switch to the tutorial page:
```shell
git switch --detach v1.1_132
```
## Structure
<p>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./">.</a><br/>
├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/">firefox</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/10-manual.yml">10-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/20-manual.yml">20-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/30-auto.yml">30-auto.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/40-no_proxy.yml">40-no_proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/50-prompt_authentication.yml">50-prompt_authentication.yml</a><br/>
│   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./firefox/55-proxy_dns_socks5.yml">55-proxy_dns_socks5.yml</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./types/">types</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./types/proxy/">proxy</a><br/>
        └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_132/./types/proxy/00-type.yml">00-type.yml</a><br/>
<br/><br/></p>
Contents of the firefox/55-proxy_dns_socks5.yml file
```yml
%YAML 1.2
---
version: 1.1
proxy_dns_socks5:
description: Use proxy DNS when using SOCKS v5
default: false
disabled:
jinja: |-
{{ _.proxy_mode != "Manual proxy configuration" or _.manual.socks_proxy.version == 'v4' }}
return_type: boolean
description: |-
if "_.proxy_mode" is not "Manual proxy configuration"
or "_.manual.socks_proxy.version" is "v4"
...
```
***
### Let's generate the documentation
```shell
rougail -m firefox/ --types types/proxy -o doc
```
[View the documentation file](DOCUMENTATION.md)
***
### Let's generate the changelog
```shell
rougail -m firefox/ --types types/proxy -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml
```
[View the changelog file](CHANGELOG.md)
***
## User datas
### Example 1
#### config/01/config.yml
```yml
---
```
***
#### Output
```shell
rougail -m firefox/ --types types/proxy -u yaml -yf config/01/config.yml
```
> [!NOTE]
>
> **Caption:**
> - Variable
> - <span style="color: #B8860B">Default value</span>
Variables:
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #B8860B">No proxy</span>
***
### Example 2
#### config/02/config.yml
```yml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
```
***
#### Output
```shell
rougail -m firefox/ --types types/proxy -u yaml -yf config/02/config.yml
```
> [!CAUTION]
>
> - proxy_dns_socks5 (Use proxy DNS when using SOCKS v5)
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored</span>
> - <span style='color: #C23636'>:stop_sign: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml"</span>
***
### Example 3
#### config/03/config.yml
```yml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
proxy_dns_socks5: true
```
***
#### Output
```shell
rougail -m firefox/ --types types/proxy -u yaml -yf config/03/config.yml
```
> [!CAUTION]
>
> - proxy_dns_socks5 (Use proxy DNS when using SOCKS v5)
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored</span>
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored</span>
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored when loading from the YAML file "config/03/config.yml"</span>
> - <span style='color: #C23636'>:stop_sign: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml"</span>
***
### Example 4
#### config/04/config.yml
```yml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
socks_proxy:
version: v4
```
***
#### Output
```shell
rougail -m firefox/ --types types/proxy -u yaml -yf config/04/config.yml
```
> [!CAUTION]
>
> - proxy_dns_socks5 (Use proxy DNS when using SOCKS v5)
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored</span>
> - <span style='color: #EFBF04'>:bell: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml", it will be ignored</span>
> - <span style='color: #C23636'>:stop_sign: unexpected error "cannot access to option "version" (SOCKS host version used by proxy) because has property "disabled"" in function "jinja_to_property" with arguments "['disabled', 'if "_.proxy_mode" is not "Manual proxy configuration"\nor "_.manual.socks_proxy.version" is "v4"']" and "{'__internal_jinja': 'disabled_proxy_dns_socks5', '__internal_type': 'boolean', '__internal_multi': False, '__internal_files': ['firefox/55-proxy_dns_socks5.yml'], '__internal_attribute': 'disabled', '__internal_variable': 'proxy_dns_socks5', 'when': True, 'inverse': False, '_.proxy_mode': 'Manual proxy configuration', '_.manual.socks_proxy.version': PropertiesOptionError(None)}" for option "proxy_dns_socks5" (Use proxy DNS when using SOCKS v5) in "firefox/55-proxy_dns_socks5.yml"</span>
> - manual (Manual proxy configuration)
> - socks_proxy (SOCKS Proxy)
> - version (SOCKS host version used by proxy): :bell: <span style="color: #EFBF04">variable has property disabled, it will be ignored when loading from the YAML file "config/04/config.yml"</span>
***
- [[Next tutorial v1.1_140] Disabled a variable when an other variable are disabled](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_140/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_140~1..v1.1_140))