Compare commits

..

No commits in common. "07a8478444eab58b085f0fdce4f4f23e66a9fd89" and "a7b250663eb8fa2ae91ca8a15557fb1aa33a2011" have entirely different histories.

353 changed files with 1152 additions and 982 deletions

View file

@ -1,14 +1,3 @@
## 0.2.0a19 (2025-11-21)
### Feat
- undocumented_modes is now a variable
### Fix
- black
- do not display empty console
## 0.2.0a18 (2025-11-07)
### Feat

View file

@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2025-11-08 22:16+0100\n"
"PO-Revision-Date: 2025-11-08 22:17+0100\n"
"POT-Creation-Date: 2025-10-04 14:49+0200\n"
"PO-Revision-Date: 2025-10-04 14:50+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@ -16,73 +16,69 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 3.7\n"
#: src/rougail/output_console/__init__.py:90
#: src/rougail/output_console/__init__.py:81
msgid "Error in config: {0}"
msgstr "Erreur dans la config : {0}"
#: src/rougail/output_console/__init__.py:120
#: src/rougail/output_console/__init__.py:109
msgid "The following variables are mandatory but have no value:"
msgstr "Les variables suivantes sont obligatoire mais n'ont pas de valeur :"
#: src/rougail/output_console/__init__.py:126
#: src/rougail/output_console/__init__.py:114
msgid "The following variables are inaccessible but are empty and mandatory:"
msgstr ""
"Les variables suivantes sont inaccessibles mais sont vides et obligatoires :"
#: src/rougail/output_console/__init__.py:212
#: src/rougail/output_console/__init__.py:201
msgid "Variable"
msgstr "Variable"
#: src/rougail/output_console/__init__.py:214
#: src/rougail/output_console/__init__.py:203
msgid "Undocumented variable"
msgstr "Variable non documentée"
#: src/rougail/output_console/__init__.py:216
#: src/rougail/output_console/__init__.py:205
msgid "Undocumented but modified variable"
msgstr "Variable non documentée mais modifiée"
#: src/rougail/output_console/__init__.py:218
#: src/rougail/output_console/__init__.py:207
msgid "Unmodifiable variable"
msgstr "Variable non modifiable"
#: src/rougail/output_console/__init__.py:221
#: src/rougail/output_console/__init__.py:210
msgid "Default value"
msgstr "Valeur par défaut"
#: src/rougail/output_console/__init__.py:223
#: src/rougail/output_console/__init__.py:212
msgid "Modified value"
msgstr "Valeur modifiée"
#: src/rougail/output_console/__init__.py:225
#: src/rougail/output_console/__init__.py:214
msgid "Original default value"
msgstr "Valeur par défaut d'origine"
#: src/rougail/output_console/__init__.py:229
#: src/rougail/output_console/__init__.py:218
msgid "Caption"
msgstr "Légende"
#: src/rougail/output_console/__init__.py:248
msgid "Layers"
msgstr "Couches"
#: src/rougail/output_console/__init__.py:255
#: src/rougail/output_console/__init__.py:225
msgid "ERRORS"
msgstr "ERREURS"
#: src/rougail/output_console/__init__.py:283
#: src/rougail/output_console/__init__.py:254
msgid "WARNINGS"
msgstr "AVERTISSEMENTS"
#: src/rougail/output_console/__init__.py:294
#: src/rougail/output_console/__init__.py:265
msgid "Variables:"
msgstr "Variables :"
#: src/rougail/output_console/__init__.py:325
#: src/rougail/output_console/__init__.py:485
#: src/rougail/output_console/__init__.py:296
#: src/rougail/output_console/__init__.py:416
msgid "{0}:"
msgstr "{0} :"
#: src/rougail/output_console/__init__.py:491
#: src/rougail/output_console/__init__.py:422
msgid "{0}: {1}"
msgstr "{0} : {1}"
@ -96,7 +92,8 @@ msgstr "Voir les secrets plutôt que de les obscurcir"
#: src/rougail/output_console/config.py:40
msgid "test mandatories variables before display in console"
msgstr "Test les variables obligatoires avant de les afficher dans la console"
msgstr ""
"Test les variables obligatoires avant de les afficher dans la console"
#: src/rougail/output_console/config.py:50
msgid ""

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-11-08 22:17+0100\n"
"POT-Creation-Date: 2025-10-04 14:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,72 +15,68 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
#: src/rougail/output_console/__init__.py:90
#: src/rougail/output_console/__init__.py:81
msgid "Error in config: {0}"
msgstr ""
#: src/rougail/output_console/__init__.py:120
#: src/rougail/output_console/__init__.py:109
msgid "The following variables are mandatory but have no value:"
msgstr ""
#: src/rougail/output_console/__init__.py:126
#: src/rougail/output_console/__init__.py:114
msgid "The following variables are inaccessible but are empty and mandatory:"
msgstr ""
#: src/rougail/output_console/__init__.py:212
#: src/rougail/output_console/__init__.py:201
msgid "Variable"
msgstr ""
#: src/rougail/output_console/__init__.py:214
#: src/rougail/output_console/__init__.py:203
msgid "Undocumented variable"
msgstr ""
#: src/rougail/output_console/__init__.py:216
#: src/rougail/output_console/__init__.py:205
msgid "Undocumented but modified variable"
msgstr ""
#: src/rougail/output_console/__init__.py:218
#: src/rougail/output_console/__init__.py:207
msgid "Unmodifiable variable"
msgstr ""
#: src/rougail/output_console/__init__.py:221
#: src/rougail/output_console/__init__.py:210
msgid "Default value"
msgstr ""
#: src/rougail/output_console/__init__.py:223
#: src/rougail/output_console/__init__.py:212
msgid "Modified value"
msgstr ""
#: src/rougail/output_console/__init__.py:225
#: src/rougail/output_console/__init__.py:214
msgid "Original default value"
msgstr ""
#: src/rougail/output_console/__init__.py:229
#: src/rougail/output_console/__init__.py:218
msgid "Caption"
msgstr ""
#: src/rougail/output_console/__init__.py:248
msgid "Layers"
msgstr ""
#: src/rougail/output_console/__init__.py:255
#: src/rougail/output_console/__init__.py:225
msgid "ERRORS"
msgstr ""
#: src/rougail/output_console/__init__.py:283
#: src/rougail/output_console/__init__.py:254
msgid "WARNINGS"
msgstr ""
#: src/rougail/output_console/__init__.py:294
#: src/rougail/output_console/__init__.py:265
msgid "Variables:"
msgstr ""
#: src/rougail/output_console/__init__.py:325
#: src/rougail/output_console/__init__.py:485
#: src/rougail/output_console/__init__.py:296
#: src/rougail/output_console/__init__.py:416
msgid "{0}:"
msgstr ""
#: src/rougail/output_console/__init__.py:491
#: src/rougail/output_console/__init__.py:422
msgid "{0}: {1}"
msgstr ""

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "rougail.output_console"
version = "0.2.0a19"
version = "0.2.0a18"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md"
description = "Rougail output console"

View file

@ -35,8 +35,8 @@ from .__version__ import __version__
class RougailOutputConsole:
variable_hidden_color = "orange1"
variable_undocumented_color = "bright_blue"
variable_undocumented_and_modified_color = "red1"
variable_advanced_color = "bright_blue"
variable_advanced_and_modified_color = "red1"
value_unmodified_color = "gold1"
value_default_color = "green"
@ -50,10 +50,11 @@ class RougailOutputConsole:
user_data_warnings: Optional[list] = None,
config_owner_is_path: bool = False,
layer_datas = None,
**kwargs,
**kwargs
) -> None:
if rougailconfig is None:
from rougail import RougailConfig
rougailconfig = RougailConfig
self.rougailconfig = rougailconfig
self.config = config
@ -63,14 +64,10 @@ class RougailOutputConsole:
self.is_mandatory = self.rougailconfig["console.mandatory"]
self.show_secrets = self.rougailconfig["console.show_secrets"]
self.key_is_description = self.rougailconfig["console.key_is_description"]
try:
self.undocumented_modes = set(self.rougailconfig["console.undocumented_modes"])
except Exception:
self.undocumented_modes = set()
self.variable_default_enable = False
self.variable_hidden_enable = False
self.variable_undocumented_enable = False
self.variable_undocumented_and_modified_enable = False
self.variable_advanced_enable = False
self.variable_advanced_and_modified_enable = False
self.value_modified_enable = False
self.value_unmodified_enable = False
self.value_default_enable = False
@ -105,16 +102,14 @@ class RougailOutputConsole:
else:
parent = self.config
current_options = options
for child_path in option.path().split("."):
for child_path in option.path().split('.'):
child = parent.option(child_path)
if self.key_is_description:
description = child.description(uncalculated=True)
else:
description = child.path(uncalculated=True)
if child.isdynamic() and "{{ identifier }}" in description:
description = description.replace(
"{{ identifier }}", child.identifiers()[-1]
)
description = description.replace('{{ identifier }}', child.identifiers()[-1])
if child.isoptiondescription():
current_options = current_options.setdefault(description, {})
@ -122,27 +117,20 @@ class RougailOutputConsole:
else:
current_options.setdefault(None, []).append(description)
if options:
self.errors.append(
{_("The following variables are mandatory but have no value:"): options}
)
self.errors.append({_("The following variables are mandatory but have no value:"): options})
elif options_with_error:
if self.key_is_description:
variables = [option.description() for option in options_with_error]
else:
variables = [option.path() for option in options_with_error]
self.errors.append(
{
_(
self.errors.append({_(
"The following variables are inaccessible but are empty and mandatory:"
): variables
}
)
): variables})
def exporter(self) -> bool:
if self.is_mandatory:
ori_properties = self.config.property.exportation()
self.config.property.read_write()
if not self.user_data_errors and not self.errors:
self.mandatory()
self.config.property.importation(ori_properties)
warnings = self.user_data_warnings + self.warnings
@ -162,7 +150,6 @@ class RougailOutputConsole:
self.root,
)
self.config.information.set("path_in_description", old_path_in_description)
if self.output.tree.children:
self.header()
self.end()
return True
@ -222,10 +209,10 @@ class RougailOutputConsole:
caption_line = ""
if self.variable_default_enable:
caption_line += _("Variable") + "\n"
if self.variable_undocumented_enable:
caption_line += f'[{self.variable_undocumented_color}]{_("Undocumented variable")}[/{self.variable_undocumented_color}]\n'
if self.variable_undocumented_and_modified_enable:
caption_line += f'[{self.variable_undocumented_and_modified_color}]{_("Undocumented but modified variable")}[/{self.variable_undocumented_and_modified_color}]\n'
if self.variable_advanced_enable:
caption_line += f'[{self.variable_advanced_color}]{_("Undocumented variable")}[/{self.variable_advanced_color}]\n'
if self.variable_advanced_and_modified_enable:
caption_line += f'[{self.variable_advanced_and_modified_color}]{_("Undocumented but modified variable")}[/{self.variable_advanced_and_modified_color}]\n'
if self.variable_hidden_enable:
caption_line += f'[{self.variable_hidden_color}]{_("Unmodifiable variable")}[/{self.variable_hidden_color}]\n'
header_value = ""
@ -308,7 +295,6 @@ class RougailOutputConsole:
self,
yaml,
self.key_is_description,
self.undocumented_modes,
no_icon=True,
)
return self.output
@ -325,7 +311,6 @@ class OutputFamily:
root,
_yaml,
key_is_description,
undocumented_modes,
*,
is_leader: bool = False,
no_icon: bool = False,
@ -352,7 +337,6 @@ class OutputFamily:
self.root = root
self._yaml = _yaml
self.key_is_description = key_is_description
self.undocumented_modes = undocumented_modes
def add_family(
self,
@ -362,9 +346,9 @@ class OutputFamily:
if "hidden" in properties:
self.root.variable_hidden_enable = True
color = self.root.variable_hidden_color
elif self.undocumented_modes & properties:
self.root.variable_undocumented_enable = True
color = self.root.variable_undocumented_color
elif "advanced" in properties:
self.root.variable_advanced_enable = True
color = self.root.variable_advanced_color
else:
self.root.variable_default_enable = True
color = None
@ -374,19 +358,15 @@ class OutputFamily:
key_name = option.name()
return OutputFamily(
self.colorize(
[
{
"value": key_name,
[{"value": key_name,
"color": color,
"loaded_from": None,
}
]
}]
),
self.tree,
self.root,
self._yaml,
self.key_is_description,
self.undocumented_modes,
)
def add_variable(
@ -396,23 +376,21 @@ class OutputFamily:
properties = option.property.get()
color = None
variable_color = None
undocumented = self.undocumented_modes & properties
hidden = False
advanced = False
if "hidden" in properties:
if undocumented:
self.root.variable_undocumented_enable = True
variable_color = self.root.variable_undocumented_color
else:
self.root.variable_hidden_enable = True
variable_color = self.root.variable_hidden_color
elif undocumented:
self.root.variable_undocumented_and_modified_enable = True
variable_color = self.root.variable_undocumented_and_modified_color
elif "advanced" in properties:
# FIXME "advanced should be an properties example!
advanced = True
else:
self.root.variable_default_enable = True
values = []
collect_values = []
if not option.owner.isdefault():
if advanced:
self.root.variable_advanced_and_modified_enable = True
variable_color = self.root.variable_advanced_and_modified_color
self.root.value_modified_enable = True
follower_index = option.index()
if follower_index is not None:
@ -423,18 +401,13 @@ class OutputFamily:
loaded_from = option.information.get("loaded_from", None)
if value is undefined:
value = option.value.get()
values.append(
{
"value": value,
values.append({"value": value,
"color": color,
"loaded_from": loaded_from,
}
)
})
suboption = option
subconfig = self.root.config
if "force_store_value" not in option.property.get() and option.information.get(
"default_value_makes_sense", True
):
if "force_store_value" not in option.property.get() and option.information.get("default_value_makes_sense", True):
while True:
default_value = suboption.value.default()
if leader_index is not None:
@ -443,16 +416,10 @@ class OutputFamily:
else:
default_value = None
is_root_metaconfig = False
if (
subconfig is None
or not subconfig.path()
or "." not in subconfig.path()
):
if subconfig is None or not subconfig.path() or "." not in subconfig.path():
is_root_metaconfig = True
subconfig = self.get_subconfig_with_default_value(suboption)
if (
(values and default_value is None) or default_value == []
) and is_root_metaconfig:
if ((values and default_value is None) or default_value == []) and is_root_metaconfig:
break
if not values:
self.root.value_unmodified_enable = True
@ -460,6 +427,9 @@ class OutputFamily:
else:
self.root.value_default_enable = True
color = self.root.value_default_color
if advanced:
self.root.variable_advanced_enable = True
variable_color = self.root.variable_advanced_color
index = option.index()
parent_option = subconfig.option(option.path(), index)
if is_root_metaconfig:
@ -471,13 +441,10 @@ class OutputFamily:
else:
key = "loaded_from"
loaded_from = parent_option.information.get(key, None)
values.append(
{
"value": default_value,
values.append({"value": default_value,
"color": color,
"loaded_from": loaded_from,
}
)
})
if is_root_metaconfig:
break
elif not values:
@ -494,25 +461,19 @@ class OutputFamily:
else:
self.root.value_default_enable = True
color = self.root.value_default_color
values.append(
{
"value": None,
values.append({"value": None,
"color": color,
"loaded_from": loaded_from,
}
)
})
if self.key_is_description:
key_name = option.description()
else:
key_name = option.name()
key = self.colorize(
[
{
"value": key_name,
[{"value": key_name,
"color": variable_color,
"loaded_from": None,
}
]
}]
)
value = self.colorize(
values,
@ -540,7 +501,7 @@ class OutputFamily:
break
else:
subconfig = self.root.metaconfig
for child in default_owner.split(".")[1:]:
for child in default_owner.split('.')[1:]:
subconfig = subconfig.config(child)
return subconfig
@ -599,11 +560,7 @@ class OutputFamily:
value: Any,
) -> str:
"""Dump variable, means transform bool, ... to yaml string"""
if (
value is not None
and not self.root.show_secrets
and option.type() == "password"
):
if value is not None and not self.root.show_secrets and option.type() == "password":
return "*" * 10
if isinstance(value, str):
return value

View file

@ -1 +1 @@
__version__ = "0.2.0a19"
__version__ = "0.2.0a18"

View file

@ -48,23 +48,6 @@ console:
{{% endif %}}
key_is_description: true # {_("In tree the key is the family or variable description inside of it's name")}
undocumented_modes:
description: {_('Variables with those modes are not documented')}
multi: true
mandatory: false
disabled:
jinja: |
{{% if not modes_level %}}
there is no mode
{{% endif %}}
description: {_('disabled when there is no mode available')}
validators:
- jinja: |
{{% if _.undocumented_modes not in modes_level %}}
this mode is not available
{{% endif %}}
description: {_('verify if disable modes already exists')}
"""
return {
"name": "console",

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,13 +0,0 @@
╭────────────── Caption ───────────────╮
│ Variable Modified value │
(⏳ Original default value)
╰──────────────────────────────────────╯
Variables:
┣━━ 📓 var1:
┃ ┣━━ string1 ◀ loaded from rougail-test (val1)
┃ ┣━━ string2 ◀ loaded from rougail-test (val2)
┃ ┗━━ string3 ◀ loaded from rougail-test (val3)
┗━━ 📓 var2:
 ┣━━ string1 ◀ loaded from rougail-test (val4)
 ┣━━ string2 ◀ loaded from rougail-test (val5)
 ┗━━ string3 ◀ loaded from rougail-test

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,14 +0,0 @@
╭────────────── Caption ───────────────╮
│ Variable Modified value │
(⏳ Original default value)
╰──────────────────────────────────────╯
Variables:
┗━━ 📂 rougail
 ┣━━ 📓 var1:
 ┃ ┣━━ string1 ◀ loaded from rougail-test (val1)
 ┃ ┣━━ string2 ◀ loaded from rougail-test (val2)
 ┃ ┗━━ string3 ◀ loaded from rougail-test (val3)
 ┗━━ 📓 var2:
  ┣━━ string1 ◀ loaded from rougail-test (val4)
  ┣━━ string2 ◀ loaded from rougail-test (val5)
  ┗━━ string3 ◀ loaded from rougail-test

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,14 +0,0 @@
╭────────────── Caption ───────────────╮
│ Variable Modified value │
(⏳ Original default value)
╰──────────────────────────────────────╯
Variables:
┗━━ 📂 Rougail
 ┣━━ 📓 the variable:
 ┃ ┣━━ string1 ◀ loaded from rougail-test (val1)
 ┃ ┣━━ string2 ◀ loaded from rougail-test (val2)
 ┃ ┗━━ string3 ◀ loaded from rougail-test (val3)
 ┗━━ 📓 the variable:
  ┣━━ string1 ◀ loaded from rougail-test (val4)
  ┣━━ string2 ◀ loaded from rougail-test (val5)
  ┗━━ string3 ◀ loaded from rougail-test

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,12 +0,0 @@
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📂 rougail
 ┣━━ 📓 var1:
 ┃ ┣━━ val1
 ┃ ┣━━ val2
 ┃ ┗━━ val3
 ┗━━ 📓 var2:
  ┣━━ val4
  ┗━━ val5

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,12 +0,0 @@
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📂 Rougail
 ┣━━ 📓 the variable:
 ┃ ┣━━ val1
 ┃ ┣━━ val2
 ┃ ┗━━ val3
 ┗━━ 📓 the variable:
  ┣━━ val4
  ┗━━ val5

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,14 +0,0 @@
╭────────────── Caption ───────────────╮
│ Variable Modified value │
(⏳ Original default value)
╰──────────────────────────────────────╯
Variables:
┗━━ 📂 rougail
 ┣━━ 📓 var1:
 ┃ ┣━━ string1 ◀ loaded from rougail-test (val1)
 ┃ ┣━━ string2 ◀ loaded from rougail-test (val2)
 ┃ ┗━━ string3 ◀ loaded from rougail-test (val3)
 ┗━━ 📓 var2:
  ┣━━ string1 ◀ loaded from rougail-test (val4)
  ┣━━ string2 ◀ loaded from rougail-test (val5)
  ┗━━ string3 ◀ loaded from rougail-test

View file

@ -0,0 +1,4 @@
╭─ Caption ─╮
│ │
╰───────────╯
Variables:

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.version
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.empty
 ┗━━ Rougail
  ┗━━ empty

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┣━━ rougail.var2
  ┗━━ rougail.var3
 ┗━━ Rougail
  ┣━━ a first variable
  ┣━━ a second variable
  ┗━━ a new variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a variable
  ┗━━ a variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first variable
  ┗━━ the second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first variable
  ┗━━ the second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.custom1
 ┗━━ Rougail
  ┗━━ the first variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable1
 ┗━━ Rougail
  ┗━━ a port variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.secret1
 ┗━━ Rougail
  ┗━━ the first variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.secret1
 ┗━━ Rougail
  ┗━━ the first variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┣━━ rougail.var2
  ┗━━ rougail.var3
 ┗━━ Rougail
  ┣━━ the first variable
  ┣━━ the second variable
  ┗━━ the third variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first variable
  ┗━━ the second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first variable
  ┗━━ the second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first <variable>
  ┗━━ the second <variable>

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┣━━ rougail.var3
  ┗━━ rougail.var6
 ┗━━ Rougail
  ┣━━ the first variable
  ┣━━ the third variable
  ┗━━ the sixth variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable1
 ┗━━ Rougail
  ┗━━ a first variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.my_calculated_variable
 ┗━━ Rougail
  ┗━━ my_calculated_variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.custom1
 ┗━━ Rougail
  ┗━━ a first custom variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var
 ┗━━ Rougail
  ┗━━ the first variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var1
 ┗━━ Rougail
  ┗━━ the second variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┣━━ rougail.var2
  ┗━━ rougail.var3
 ┗━━ Rougail
  ┣━━ the first variable
  ┣━━ the second variable
  ┗━━ the third variable

View file

@ -1,12 +0,0 @@
╭─────── Caption ────────╮
│ Variable Default value │
╰────────────────────────╯
Variables:
┗━━ 📂 rougail
 ┣━━ 📓 var1:
 ┃ ┣━━ val1
 ┃ ┣━━ val2
 ┃ ┗━━ val3
 ┗━━ 📓 var2:
  ┣━━ val4
  ┗━━ val5

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable2
 ┗━━ Rougail
  ┗━━ a second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.var1
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┣━━ the first variable
  ┗━━ the second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var2
 ┗━━ Rougail
  ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var3
 ┗━━ Rougail
  ┗━━ a third variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.variable1
  ┗━━ rougail.variable2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable1
 ┗━━ Rougail
  ┗━━ a first variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.variable1
  ┗━━ rougail.variable2
 ┗━━ Rougail
  ┣━━ a first variable
  ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.int
 ┗━━ Rougail
  ┗━━ An integer

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var
 ┗━━ Rougail
  ┗━━ Redefined

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.var1
 ┗━━ Rougail
  ┗━━ family
   ┗━━ var1

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.variable
 ┗━━ Rougail
  ┗━━ new description
   ┗━━ a variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.variable
 ┗━━ Rougail
  ┗━━ a family
   ┗━━ redefine help

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.variable
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var3
 ┗━━ Rougail
  ┗━━ a third variable

View file

@ -1,7 +1,7 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.family1
  ┃ ┗━━ rougail.family1.variable1
  ┗━━ rougail.family2
   ┗━━ rougail.family2.variable2
 ┗━━ Rougail
  ┣━━ new description
  ┃ ┗━━ a variable
  ┗━━ a second family
   ┗━━ a second variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var
 ┗━━ Rougail
  ┗━━ Description

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┣━━ rougail.family.var1
   ┗━━ rougail.family.var2
 ┗━━ Rougail
  ┗━━ A family
   ┣━━ The first variable
   ┗━━ The second variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.subfamily
    ┗━━ rougail.family.subfamily.variable
 ┗━━ Rougail
  ┗━━ a family
   ┗━━ a sub family
    ┗━━ a variable

View file

@ -1,9 +1,9 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┣━━ rougail.variable
  ┗━━ rougail.family
   ┣━━ rougail.family.variable1
   ┣━━ rougail.family.variable2
   ┗━━ rougail.family.subfamily
    ┗━━ rougail.family.subfamily.variable
 ┗━━ Rougail
  ┣━━ a variable
  ┗━━ a family
   ┣━━ a first variable
   ┣━━ a second variable
   ┗━━ a sub family
    ┗━━ a variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┣━━ rougail.family.var1
   ┗━━ rougail.family.var2
 ┗━━ Rougail
  ┗━━ family
   ┣━━ a first variable
   ┗━━ a second variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.var1
 ┗━━ Rougail
  ┗━━ possibly hidden family
   ┗━━ a variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.subfamily
    ┗━━ rougail.family.subfamily.var1
 ┗━━ Rougail
  ┗━━ possibly hidden family
   ┗━━ subfamily
    ┗━━ a variable

View file

@ -1,6 +1,6 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.family
   ┗━━ rougail.family.sub_family
    ┗━━ rougail.family.sub_family.var1
 ┗━━ Rougail
  ┗━━ possibly hidden family
   ┗━━ a subfamily
    ┗━━ a variable

View file

@ -1,4 +1,4 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.var
 ┗━━ Rougail
  ┗━━ a variable

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.general
   ┗━━ rougail.general.int
 ┗━━ Rougail
  ┗━━ a family
   ┗━━ a first integer

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.leader
   ┗━━ rougail.leader.leader
 ┗━━ Rougail
  ┗━━ a leadership
   ┗━━ a leader

View file

@ -1,5 +1,5 @@
🛑 ERRORS
┗━━ The following variables are mandatory but have no value:
 ┗━━ rougail
  ┗━━ rougail.leadership
   ┗━━ rougail.leadership.leader
 ┗━━ Rougail
  ┗━━ a leadership
   ┗━━ a leader

Some files were not shown because too many files have changed in this diff Show more