Compare commits
No commits in common. "d76e676d4e0e83d0672a52232bb1632bc2cbf29c" and "e06c9b18291559e6ec5ea9b0b3e81fa6c997123a" have entirely different histories.
d76e676d4e
...
e06c9b1829
4367 changed files with 47299 additions and 61252 deletions
|
|
@ -11,7 +11,7 @@ include_toc: true
|
|||
> Les fichiers de structure contiennent toutes les informations relatif aux variables. Cette sortie génère la documentation pour tout ou partie de ces variables.\
|
||||
> **Chemin** : doc\
|
||||
> *`désactivé`*\
|
||||
> **Désactivé** : si "[Sélection pour sortie](#step.output)" n'est pas doc
|
||||
> **Désactivé** : si doc n'est pas spécifié dans "[Sélection pour sortie](#step.output)"
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ include_toc: true
|
|||
> The structural files contain all the information related to the variables. This output generates the documentation for all or some of these variables.\
|
||||
> **Path**: doc\
|
||||
> *`disabled`*\
|
||||
> **Disabled**: if "[Select for output](#step.output)" is not doc
|
||||
> **Disabled**: if doc is not set in "[Select for output](#step.output)"
|
||||
|
||||
| Variable | Description | Default value | Type | Access control | Validator |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2026-03-29 10:57+0200\n"
|
||||
"PO-Revision-Date: 2026-03-29 10:58+0200\n"
|
||||
"POT-Creation-Date: 2026-01-29 08:31+0100\n"
|
||||
"PO-Revision-Date: 2026-01-29 08:33+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
|
@ -16,174 +16,37 @@ msgstr ""
|
|||
"Generated-By: pygettext.py 1.5\n"
|
||||
"X-Generator: Poedit 3.8\n"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:153
|
||||
msgid "New variable"
|
||||
msgstr "Nouvelle variable"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:155
|
||||
msgid "New variables"
|
||||
msgstr "Nouvelles variables"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
msgid "Modified variable"
|
||||
msgstr "Variable modifiée"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
msgid "Modified variables"
|
||||
msgstr "Variables modifiées"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:185
|
||||
msgid "Deleted variable"
|
||||
msgstr "Variable supprimée"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:187
|
||||
msgid "Deleted variables"
|
||||
msgstr "Variables supprimées"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:52
|
||||
msgid ""
|
||||
"cannot find \"{0}_calculation\" information, do you have annotate this "
|
||||
"configuration?"
|
||||
msgstr ""
|
||||
"ne peut trouver l'information \"{0}_calculation\", avez-vous annoté cette "
|
||||
"configuration ?"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:93
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
msgstr "la valeur de l'information \"{0}\" de la variable \"{1}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:97
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr "la valeur de l'information globale \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:101
|
||||
msgid "the value of the {0}"
|
||||
msgstr "la valeur de l'{0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:108
|
||||
msgid "depends on a calculation"
|
||||
msgstr "dépend d'un calcul"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:109
|
||||
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
|
||||
msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:172
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr "dépends d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:190
|
||||
msgid "is \"{0}\""
|
||||
msgstr "est \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:195
|
||||
msgid "is accessible"
|
||||
msgstr "est accessible"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:197
|
||||
msgid "is defined"
|
||||
msgstr "est définie"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:202
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr "n'a pas la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:204
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr "a la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:208
|
||||
msgid "is {0}"
|
||||
msgstr "est {0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:210
|
||||
msgid "when the variable \"{{0}}\" {0}"
|
||||
msgstr "lorsque la variable \"{{0}}\" {0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:237
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
msgstr "la valeur de la variable \"{0}\" si elle est définie"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:239
|
||||
msgid "the value of the variable \"{0}\""
|
||||
msgstr "la valeur de la variable \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:255
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr "(issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:261
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr "{0} (issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:265
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr "la valeur d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:302
|
||||
#: src/rougail/output_doc/annotator.py:371
|
||||
msgid "when the identifier is \"{0}\""
|
||||
msgstr "lorsque l'identifiant est \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:304
|
||||
#: src/rougail/output_doc/annotator.py:373
|
||||
msgid "when the identifier is not \"{0}\""
|
||||
msgstr "lorsque l'identifiant n'est pas \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:309
|
||||
msgid "the value of the identifier"
|
||||
msgstr "la valeur de l'identifiant"
|
||||
#: src/rougail/output_doc/changelog.py:137
|
||||
msgid "New variable"
|
||||
msgstr "Nouvelle variable"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:396
|
||||
msgid "This family contains lists of variable blocks"
|
||||
msgstr "Cette famille contient des listes de bloc de variable"
|
||||
#: src/rougail/output_doc/changelog.py:139
|
||||
msgid "New variables"
|
||||
msgstr "Nouvelles variables"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:400
|
||||
msgid "This family builds families dynamically"
|
||||
msgstr "Cette famille construit des familles dynamiquement"
|
||||
#: src/rougail/output_doc/changelog.py:153
|
||||
msgid "Modified variable"
|
||||
msgstr "Variable modifiée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:410
|
||||
msgid "This family is a namespace"
|
||||
msgstr "Cette famille est un espace de nom"
|
||||
#: src/rougail/output_doc/changelog.py:155
|
||||
msgid "Modified variables"
|
||||
msgstr "Variables modifiées"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:461
|
||||
msgid "Example"
|
||||
msgstr "Exemple"
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
msgid "Deleted variable"
|
||||
msgstr "Variable supprimée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:464
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:470
|
||||
msgid "Tag"
|
||||
msgstr "Étiquette"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:473
|
||||
msgid "Tags"
|
||||
msgstr "Étiquettes"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:567
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr "texte avec expression rationnelle \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:571
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:83
|
||||
msgid "Validator"
|
||||
msgstr "Validateur"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:574
|
||||
msgid "Validators"
|
||||
msgstr "Validateurs"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:583
|
||||
msgid "Choices"
|
||||
msgstr "Choix"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:633
|
||||
msgid "Default"
|
||||
msgstr "Défaut"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:643
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}"
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
msgid "Deleted variables"
|
||||
msgstr "Variables supprimées"
|
||||
|
||||
#: src/rougail/output_doc/config.py:54
|
||||
msgid "duplicated level rougail-output-doc for {0} \"{1}\": {2} and {3}"
|
||||
|
|
@ -193,15 +56,15 @@ msgstr "niveau dupliqué pour rougail-doc pour {0} \"{1}\": {2} et {3}"
|
|||
msgid "duplicated name \"{0}\" in rougail-output-doc"
|
||||
msgstr "nom dupliqué \"{0}\" dans rougail-output-doc"
|
||||
|
||||
#: src/rougail/output_doc/config.py:116
|
||||
#: src/rougail/output_doc/config.py:118
|
||||
msgid "is true if doc is activate"
|
||||
msgstr "est true si doc est activé"
|
||||
|
||||
#: src/rougail/output_doc/config.py:119
|
||||
#: src/rougail/output_doc/config.py:121
|
||||
msgid "Generate documentation from structural files"
|
||||
msgstr "Générer la documentation depuis les fichiers de structure"
|
||||
|
||||
#: src/rougail/output_doc/config.py:120
|
||||
#: src/rougail/output_doc/config.py:122
|
||||
msgid ""
|
||||
"The structural files contain all the information related to the variables. "
|
||||
"This output generates the documentation for all or some of these variables."
|
||||
|
|
@ -210,19 +73,19 @@ msgstr ""
|
|||
"variables. Cette sortie génère la documentation pour tout ou partie de ces "
|
||||
"variables."
|
||||
|
||||
#: src/rougail/output_doc/config.py:125
|
||||
msgid "if \"step.output\" is not doc"
|
||||
msgstr "si \"step.output\" n'est pas doc"
|
||||
#: src/rougail/output_doc/config.py:127
|
||||
msgid "if doc is not set in \"step.output\""
|
||||
msgstr "si doc n'est pas spécifié dans \"step.output\""
|
||||
|
||||
#: src/rougail/output_doc/config.py:128
|
||||
#: src/rougail/output_doc/config.py:130
|
||||
msgid "The output format of the generated documentation"
|
||||
msgstr "Le format de sortie de la documentation générée"
|
||||
|
||||
#: src/rougail/output_doc/config.py:137
|
||||
#: src/rougail/output_doc/config.py:139
|
||||
msgid "Generate document with this tabular model"
|
||||
msgstr "Génère la documentation avec ce modèle de tableau"
|
||||
|
||||
#: src/rougail/output_doc/config.py:138
|
||||
#: src/rougail/output_doc/config.py:140
|
||||
msgid ""
|
||||
"The variables are documented with a tabular view. A template selection "
|
||||
"allows you to choose the content of each column."
|
||||
|
|
@ -230,15 +93,15 @@ msgstr ""
|
|||
"Les variables sont documentées avec une vue tableau. Une sélection de modèle "
|
||||
"vous permet de choisir le contenu de chaque colonne."
|
||||
|
||||
#: src/rougail/output_doc/config.py:146
|
||||
#: src/rougail/output_doc/config.py:148
|
||||
msgid "\"_.output_format\" in json is not compatible with this variable"
|
||||
msgstr "\"_.output_format\" en json n\\'est pas compatible avec cette variable"
|
||||
|
||||
#: src/rougail/output_doc/config.py:153
|
||||
#: src/rougail/output_doc/config.py:155
|
||||
msgid "Generated content"
|
||||
msgstr "Contenu généré"
|
||||
|
||||
#: src/rougail/output_doc/config.py:154
|
||||
#: src/rougail/output_doc/config.py:156
|
||||
msgid ""
|
||||
"You can generate three type of document. All variables (\"variables\"), an "
|
||||
"example file in YAML format (\"example\") or change log (\"changelog\")."
|
||||
|
|
@ -247,7 +110,7 @@ msgstr ""
|
|||
"(\"variables\"), un exemple de fichier au format YAML (\"example\") ou le "
|
||||
"journal des changements (\"changelog\")."
|
||||
|
||||
#: src/rougail/output_doc/config.py:167
|
||||
#: src/rougail/output_doc/config.py:169
|
||||
msgid ""
|
||||
"\"_.output_format\" in json is not compatible with changelog or example "
|
||||
"\"_.contents\""
|
||||
|
|
@ -255,15 +118,15 @@ msgstr ""
|
|||
"\"_.output_format\" en json n'est pas compatible avec \"_.contents\" "
|
||||
"changelog or example"
|
||||
|
||||
#: src/rougail/output_doc/config.py:170
|
||||
#: src/rougail/output_doc/config.py:172
|
||||
msgid "Starting title level"
|
||||
msgstr "Niveau de titre de départ"
|
||||
|
||||
#: src/rougail/output_doc/config.py:175
|
||||
#: src/rougail/output_doc/config.py:177
|
||||
msgid "Modify values to document all variables"
|
||||
msgstr "Modifier les valeurs pour documenter toutes les variables"
|
||||
|
||||
#: src/rougail/output_doc/config.py:176
|
||||
#: src/rougail/output_doc/config.py:178
|
||||
msgid ""
|
||||
"To document leadership or dynamic family variables, it is sometimes "
|
||||
"necessary to generate values, which can change the values in the "
|
||||
|
|
@ -274,17 +137,17 @@ msgstr ""
|
|||
"valeurs de la configuration. Soyez vigilent si vous réutilisez cette "
|
||||
"configuration."
|
||||
|
||||
#: src/rougail/output_doc/config.py:180
|
||||
#: src/rougail/output_doc/config.py:182
|
||||
msgid "Display documentation in console always with true color terminal"
|
||||
msgstr ""
|
||||
"Afficher la documentation dans la console en permanence avec un terminal en "
|
||||
"couleurs réelles"
|
||||
|
||||
#: src/rougail/output_doc/config.py:187
|
||||
#: src/rougail/output_doc/config.py:189
|
||||
msgid "The variables in this family are documented in another file"
|
||||
msgstr "Les variables pour cette famille sont documentés dans un autre fichier"
|
||||
|
||||
#: src/rougail/output_doc/config.py:188
|
||||
#: src/rougail/output_doc/config.py:190
|
||||
msgid ""
|
||||
"If you separate the variables into different files, the links between the "
|
||||
"variables will break. Therefore, you must define different filenames for the "
|
||||
|
|
@ -294,23 +157,23 @@ msgstr ""
|
|||
"variables va être cassé. Dans ce cas, vous devez définit différents nom de "
|
||||
"fichiers pour les fichiers contenant ces variables."
|
||||
|
||||
#: src/rougail/output_doc/config.py:192
|
||||
#: src/rougail/output_doc/config.py:194
|
||||
msgid "This file contains child variables of the family"
|
||||
msgstr "Ce fichier contient les variables enfants de la famille"
|
||||
|
||||
#: src/rougail/output_doc/config.py:196
|
||||
#: src/rougail/output_doc/config.py:198
|
||||
msgid "Name of the file"
|
||||
msgstr "Nom du fichier"
|
||||
|
||||
#: src/rougail/output_doc/config.py:204
|
||||
#: src/rougail/output_doc/config.py:206
|
||||
msgid "Documentation a structural type"
|
||||
msgstr "Documenter type de structure"
|
||||
|
||||
#: src/rougail/output_doc/config.py:208
|
||||
#: src/rougail/output_doc/config.py:210
|
||||
msgid "Variables and changelog documentation"
|
||||
msgstr "Documentation des variables et journal de changements"
|
||||
|
||||
#: src/rougail/output_doc/config.py:213
|
||||
#: src/rougail/output_doc/config.py:215
|
||||
msgid ""
|
||||
"if \"_.output_format\" is json or \"_.contents\" hasn't variables or "
|
||||
"changelog"
|
||||
|
|
@ -318,45 +181,45 @@ msgstr ""
|
|||
"si \"_.output_format\" en json ou si \"_.contents\" n'est pas variables ou "
|
||||
"changelog"
|
||||
|
||||
#: src/rougail/output_doc/config.py:216
|
||||
#: src/rougail/output_doc/config.py:218
|
||||
msgid "Do not add families in documentation"
|
||||
msgstr "Ne pas ajouter les familles dans la documentation"
|
||||
|
||||
#: src/rougail/output_doc/config.py:221
|
||||
#: src/rougail/output_doc/config.py:223
|
||||
msgid "Add command line informations in documentation"
|
||||
msgstr "Ajoute les informations de la ligne de commande dans la documentation"
|
||||
|
||||
#: src/rougail/output_doc/config.py:226
|
||||
#: src/rougail/output_doc/config.py:228
|
||||
msgid "Add environment variable informations in documentation"
|
||||
msgstr ""
|
||||
"Ajoute les informations de variable d'environnement dans la documentation"
|
||||
|
||||
#: src/rougail/output_doc/config.py:231
|
||||
#: src/rougail/output_doc/config.py:233
|
||||
msgid "Environment variables prefix name"
|
||||
msgstr "Préfixe du nom des variables d'environnement"
|
||||
|
||||
#: src/rougail/output_doc/config.py:238
|
||||
#: src/rougail/output_doc/config.py:240
|
||||
msgid "should only use uppercase characters"
|
||||
msgstr "doit seulement utilise des caractères en majuscule"
|
||||
|
||||
#: src/rougail/output_doc/config.py:243
|
||||
#: src/rougail/output_doc/config.py:245
|
||||
msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false"
|
||||
msgstr ""
|
||||
"si \"main_namespace\" n'est pas défini ou \"_.with_environment\" est false"
|
||||
|
||||
#: src/rougail/output_doc/config.py:246
|
||||
#: src/rougail/output_doc/config.py:248
|
||||
msgid "Changelog documentation"
|
||||
msgstr "Documentation du journal des changements"
|
||||
|
||||
#: src/rougail/output_doc/config.py:251
|
||||
#: src/rougail/output_doc/config.py:253
|
||||
msgid "if changelog in not in \"_.contents\""
|
||||
msgstr "changelog n'est pas défini dans \"_.contents\""
|
||||
|
||||
#: src/rougail/output_doc/config.py:254
|
||||
#: src/rougail/output_doc/config.py:256
|
||||
msgid "Previous description file in JSON format"
|
||||
msgstr "Précédent fichier de description au format JSON"
|
||||
|
||||
#: src/rougail/output_doc/config.py:255
|
||||
#: src/rougail/output_doc/config.py:257
|
||||
msgid ""
|
||||
"To generate the changelog, you need to compare the old list of variables (in "
|
||||
"json format) with the current variables."
|
||||
|
|
@ -364,94 +227,217 @@ msgstr ""
|
|||
"Pour générer le journal des changements, vous devez comparer l'ancienne "
|
||||
"liste des variables (au format json) avec les variables courantes."
|
||||
|
||||
#: src/rougail/output_doc/config.py:259
|
||||
#: src/rougail/output_doc/config.py:261
|
||||
msgid "Examples configuration"
|
||||
msgstr "Configuration des exemples"
|
||||
|
||||
#: src/rougail/output_doc/config.py:264
|
||||
#: src/rougail/output_doc/config.py:266
|
||||
msgid "if example is not in \"_.contents\""
|
||||
msgstr "si example n'est pas défini dans \"_.contents\""
|
||||
|
||||
#: src/rougail/output_doc/config.py:267
|
||||
#: src/rougail/output_doc/config.py:269
|
||||
msgid "Add description of variables and families when generate examples"
|
||||
msgstr ""
|
||||
"Ajouter la description des variables et des familles lorsqu'on génère des "
|
||||
"exemples"
|
||||
|
||||
#: src/rougail/output_doc/config.py:272
|
||||
#: src/rougail/output_doc/config.py:274
|
||||
msgid "Comment in examples starts at column"
|
||||
msgstr "Commentaire dans les exemples commence à la colonne"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:58
|
||||
#: src/rougail/output_doc/doc.py:70
|
||||
msgid "{0} is not set as step.output"
|
||||
msgstr "{0} n'est pas défini dans step.output"
|
||||
|
||||
#: src/rougail/output_doc/example.py:96
|
||||
#: src/rougail/output_doc/doc.py:363
|
||||
msgid "This family contains lists of variable blocks"
|
||||
msgstr "Cette famille contient des listes de bloc de variable"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:373
|
||||
msgid "This family builds families dynamically"
|
||||
msgstr "Cette famille construit des familles dynamiquement"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:387
|
||||
msgid "Default"
|
||||
msgstr "Défaut"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:405
|
||||
msgid "Example"
|
||||
msgstr "Exemple"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:408
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:417
|
||||
msgid "Tag"
|
||||
msgstr "Étiquette"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:420
|
||||
msgid "Tags"
|
||||
msgstr "Étiquettes"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:452
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:587
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr "texte avec expression rationnelle \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:591
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:65
|
||||
msgid "Validator"
|
||||
msgstr "Validateur"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:594
|
||||
msgid "Validators"
|
||||
msgstr "Validateurs"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:603
|
||||
msgid "Choices"
|
||||
msgstr "Choix"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:707
|
||||
msgid "the value of the identifier"
|
||||
msgstr "la valeur de l'identifiant"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:711
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
msgstr "la valeur de l'information \"{0}\" de la variable \"{1}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:715
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr "la valeur de l'information globale \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:717
|
||||
msgid "the value of the {0}"
|
||||
msgstr "la valeur de l'{0}"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:724
|
||||
msgid "depends on a calculation"
|
||||
msgstr "dépend d'un calcul"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:730
|
||||
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
|
||||
msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:786 src/rougail/output_doc/doc.py:913
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr "dépends d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:804
|
||||
msgid "is \"{0}\""
|
||||
msgstr "est \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:809
|
||||
msgid "is accessible"
|
||||
msgstr "est accessible"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:811
|
||||
msgid "is defined"
|
||||
msgstr "est définie"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:816
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr "n'a pas la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:820
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr "a la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:825
|
||||
msgid "is {0}"
|
||||
msgstr "est {0}"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:826
|
||||
msgid "when the variable \"{{0}}\" {0}"
|
||||
msgstr "lorsque la variable \"{{0}}\" {0}"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:853
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
msgstr "la valeur de la variable \"{0}\" si elle est définie"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:855
|
||||
msgid "the value of the variable \"{0}\""
|
||||
msgstr "la valeur de la variable \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:875
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr "la valeur d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:878
|
||||
msgid "the values of undocumented variables"
|
||||
msgstr "les valeurs de variables non documentées"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:901
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr "(issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/doc.py:909
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr "{0} (issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/example.py:70
|
||||
msgid "Example with mandatory variables not filled in"
|
||||
msgstr "Exemple avec des variables obligatoire non renseignée"
|
||||
|
||||
#: src/rougail/output_doc/example.py:98
|
||||
#: src/rougail/output_doc/example.py:85
|
||||
msgid "Example with all variables modifiable"
|
||||
msgstr "Exemple avec toutes les variables modifiable"
|
||||
|
||||
#: src/rougail/output_doc/output/asciidoc.py:156
|
||||
#: src/rougail/output_doc/output/console.py:201
|
||||
#: src/rougail/output_doc/output/console.py:199
|
||||
#: src/rougail/output_doc/output/gitlab.py:44
|
||||
msgid "Informations"
|
||||
msgstr "Informations"
|
||||
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:72
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:59
|
||||
msgid "Access control"
|
||||
msgstr "Contrôle des accès"
|
||||
|
||||
#: src/rougail/output_doc/tabular/four_columns.py:64
|
||||
#: src/rougail/output_doc/tabular/four_columns.py:53
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
#: src/rougail/output_doc/tabular/three_columns.py:54
|
||||
#: src/rougail/output_doc/tabular/three_columns.py:46
|
||||
msgid "Default value"
|
||||
msgstr "Valeur par défaut"
|
||||
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:56
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:45
|
||||
msgid "Variable"
|
||||
msgstr "Variable"
|
||||
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:58
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:47
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:198
|
||||
#: src/rougail/output_doc/utils.py:152
|
||||
msgid "Command line"
|
||||
msgstr "Ligne de commande"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:216
|
||||
#: src/rougail/output_doc/utils.py:159
|
||||
msgid "Environment variable"
|
||||
msgstr "Variable d'environnement"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:526
|
||||
#: src/rougail/output_doc/utils.py:438
|
||||
msgid "Path"
|
||||
msgstr "Chemin"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:536
|
||||
#: src/rougail/output_doc/utils.py:448
|
||||
msgid "Identifiers"
|
||||
msgstr "Identifiants"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:790 src/rougail/output_doc/utils.py:799
|
||||
#: src/rougail/output_doc/utils.py:805 src/rougail/output_doc/utils.py:811
|
||||
#: src/rougail/output_doc/utils.py:815
|
||||
#: src/rougail/output_doc/utils.py:668 src/rougail/output_doc/utils.py:677
|
||||
#: src/rougail/output_doc/utils.py:683 src/rougail/output_doc/utils.py:689
|
||||
#: src/rougail/output_doc/utils.py:693
|
||||
msgid "(default)"
|
||||
msgstr "(défaut)"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:1123
|
||||
#: src/rougail/output_doc/utils.py:945
|
||||
msgid "{0}: {1}"
|
||||
msgstr "{0} : {1}"
|
||||
|
||||
#~ msgid "if doc is not set in \"step.output\""
|
||||
#~ msgstr "si doc n'est pas spécifié dans \"step.output\""
|
||||
|
||||
#~ msgid "the values of undocumented variables"
|
||||
#~ msgstr "les valeurs de variables non documentées"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "when the variable \"{{0}}\" is defined, accessible and hasn't the value "
|
||||
#~ "\"{0}\""
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2026-03-29 10:58+0200\n"
|
||||
"POT-Creation-Date: 2026-01-29 08:33+0100\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,169 +15,36 @@ msgstr ""
|
|||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:153
|
||||
msgid "New variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:155
|
||||
msgid "New variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
msgid "Modified variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
msgid "Modified variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:185
|
||||
msgid "Deleted variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:187
|
||||
msgid "Deleted variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:52
|
||||
msgid "cannot find \"{0}_calculation\" information, do you have annotate this configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:93
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:97
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:101
|
||||
msgid "the value of the {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:108
|
||||
msgid "depends on a calculation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:109
|
||||
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:172
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:190
|
||||
msgid "is \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:195
|
||||
msgid "is accessible"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:197
|
||||
msgid "is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:202
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:204
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:208
|
||||
msgid "is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:210
|
||||
msgid "when the variable \"{{0}}\" {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:237
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:239
|
||||
msgid "the value of the variable \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:255
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:261
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:265
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:302
|
||||
#: src/rougail/output_doc/annotator.py:371
|
||||
msgid "when the identifier is \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:304
|
||||
#: src/rougail/output_doc/annotator.py:373
|
||||
msgid "when the identifier is not \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:309
|
||||
msgid "the value of the identifier"
|
||||
#: src/rougail/output_doc/changelog.py:137
|
||||
msgid "New variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:396
|
||||
msgid "This family contains lists of variable blocks"
|
||||
#: src/rougail/output_doc/changelog.py:139
|
||||
msgid "New variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:400
|
||||
msgid "This family builds families dynamically"
|
||||
#: src/rougail/output_doc/changelog.py:153
|
||||
msgid "Modified variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:410
|
||||
msgid "This family is a namespace"
|
||||
#: src/rougail/output_doc/changelog.py:155
|
||||
msgid "Modified variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:461
|
||||
msgid "Example"
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
msgid "Deleted variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:464
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:470
|
||||
msgid "Tag"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:473
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:567
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:571
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:83
|
||||
msgid "Validator"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:574
|
||||
msgid "Validators"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:583
|
||||
msgid "Choices"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:633
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:643
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
msgid "Deleted variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:54
|
||||
|
|
@ -188,211 +55,340 @@ msgstr ""
|
|||
msgid "duplicated name \"{0}\" in rougail-output-doc"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:116
|
||||
#: src/rougail/output_doc/config.py:118
|
||||
msgid "is true if doc is activate"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:119
|
||||
#: src/rougail/output_doc/config.py:121
|
||||
msgid "Generate documentation from structural files"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:120
|
||||
#: src/rougail/output_doc/config.py:122
|
||||
msgid "The structural files contain all the information related to the variables. This output generates the documentation for all or some of these variables."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:125
|
||||
msgid "if \"step.output\" is not doc"
|
||||
#: src/rougail/output_doc/config.py:127
|
||||
msgid "if doc is not set in \"step.output\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:128
|
||||
#: src/rougail/output_doc/config.py:130
|
||||
msgid "The output format of the generated documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:137
|
||||
#: src/rougail/output_doc/config.py:139
|
||||
msgid "Generate document with this tabular model"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:138
|
||||
#: src/rougail/output_doc/config.py:140
|
||||
msgid "The variables are documented with a tabular view. A template selection allows you to choose the content of each column."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:146
|
||||
#: src/rougail/output_doc/config.py:148
|
||||
msgid "\"_.output_format\" in json is not compatible with this variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:153
|
||||
#: src/rougail/output_doc/config.py:155
|
||||
msgid "Generated content"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:154
|
||||
#: src/rougail/output_doc/config.py:156
|
||||
msgid "You can generate three type of document. All variables (\"variables\"), an example file in YAML format (\"example\") or change log (\"changelog\")."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:167
|
||||
#: src/rougail/output_doc/config.py:169
|
||||
msgid "\"_.output_format\" in json is not compatible with changelog or example \"_.contents\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:170
|
||||
#: src/rougail/output_doc/config.py:172
|
||||
msgid "Starting title level"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:175
|
||||
#: src/rougail/output_doc/config.py:177
|
||||
msgid "Modify values to document all variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:176
|
||||
#: src/rougail/output_doc/config.py:178
|
||||
msgid "To document leadership or dynamic family variables, it is sometimes necessary to generate values, which can change the values in the configuration. Be careful if you reuse this configuration."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:180
|
||||
#: src/rougail/output_doc/config.py:182
|
||||
msgid "Display documentation in console always with true color terminal"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:187
|
||||
#: src/rougail/output_doc/config.py:189
|
||||
msgid "The variables in this family are documented in another file"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:188
|
||||
#: src/rougail/output_doc/config.py:190
|
||||
msgid "If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:192
|
||||
#: src/rougail/output_doc/config.py:194
|
||||
msgid "This file contains child variables of the family"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:196
|
||||
#: src/rougail/output_doc/config.py:198
|
||||
msgid "Name of the file"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:204
|
||||
#: src/rougail/output_doc/config.py:206
|
||||
msgid "Documentation a structural type"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:208
|
||||
#: src/rougail/output_doc/config.py:210
|
||||
msgid "Variables and changelog documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:213
|
||||
#: src/rougail/output_doc/config.py:215
|
||||
msgid "if \"_.output_format\" is json or \"_.contents\" hasn't variables or changelog"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:216
|
||||
#: src/rougail/output_doc/config.py:218
|
||||
msgid "Do not add families in documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:221
|
||||
#: src/rougail/output_doc/config.py:223
|
||||
msgid "Add command line informations in documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:226
|
||||
#: src/rougail/output_doc/config.py:228
|
||||
msgid "Add environment variable informations in documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:231
|
||||
#: src/rougail/output_doc/config.py:233
|
||||
msgid "Environment variables prefix name"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:238
|
||||
#: src/rougail/output_doc/config.py:240
|
||||
msgid "should only use uppercase characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:243
|
||||
#: src/rougail/output_doc/config.py:245
|
||||
msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:246
|
||||
#: src/rougail/output_doc/config.py:248
|
||||
msgid "Changelog documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:251
|
||||
#: src/rougail/output_doc/config.py:253
|
||||
msgid "if changelog in not in \"_.contents\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:254
|
||||
#: src/rougail/output_doc/config.py:256
|
||||
msgid "Previous description file in JSON format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:255
|
||||
#: src/rougail/output_doc/config.py:257
|
||||
msgid "To generate the changelog, you need to compare the old list of variables (in json format) with the current variables."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:259
|
||||
#: src/rougail/output_doc/config.py:261
|
||||
msgid "Examples configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:264
|
||||
#: src/rougail/output_doc/config.py:266
|
||||
msgid "if example is not in \"_.contents\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:267
|
||||
#: src/rougail/output_doc/config.py:269
|
||||
msgid "Add description of variables and families when generate examples"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/config.py:272
|
||||
#: src/rougail/output_doc/config.py:274
|
||||
msgid "Comment in examples starts at column"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:58
|
||||
#: src/rougail/output_doc/doc.py:70
|
||||
msgid "{0} is not set as step.output"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/example.py:96
|
||||
#: src/rougail/output_doc/doc.py:363
|
||||
msgid "This family contains lists of variable blocks"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:373
|
||||
msgid "This family builds families dynamically"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:387
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:405
|
||||
msgid "Example"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:408
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:417
|
||||
msgid "Tag"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:420
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:452
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:587
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:591
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:65
|
||||
msgid "Validator"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:594
|
||||
msgid "Validators"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:603
|
||||
msgid "Choices"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:707
|
||||
msgid "the value of the identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:711
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:715
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:717
|
||||
msgid "the value of the {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:724
|
||||
msgid "depends on a calculation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:730
|
||||
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:786 src/rougail/output_doc/doc.py:913
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:804
|
||||
msgid "is \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:809
|
||||
msgid "is accessible"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:811
|
||||
msgid "is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:816
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:820
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:825
|
||||
msgid "is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:826
|
||||
msgid "when the variable \"{{0}}\" {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:853
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:855
|
||||
msgid "the value of the variable \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:875
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:878
|
||||
msgid "the values of undocumented variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:901
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/doc.py:909
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/example.py:70
|
||||
msgid "Example with mandatory variables not filled in"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/example.py:98
|
||||
#: src/rougail/output_doc/example.py:85
|
||||
msgid "Example with all variables modifiable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/output/asciidoc.py:156
|
||||
#: src/rougail/output_doc/output/console.py:201
|
||||
#: src/rougail/output_doc/output/console.py:199
|
||||
#: src/rougail/output_doc/output/gitlab.py:44
|
||||
msgid "Informations"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:72
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:59
|
||||
msgid "Access control"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/four_columns.py:64
|
||||
#: src/rougail/output_doc/tabular/four_columns.py:53
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/three_columns.py:54
|
||||
#: src/rougail/output_doc/tabular/three_columns.py:46
|
||||
msgid "Default value"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:56
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:45
|
||||
msgid "Variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:58
|
||||
#: src/rougail/output_doc/tabular/two_columns.py:47
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:198
|
||||
#: src/rougail/output_doc/utils.py:152
|
||||
msgid "Command line"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:216
|
||||
#: src/rougail/output_doc/utils.py:159
|
||||
msgid "Environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:526
|
||||
#: src/rougail/output_doc/utils.py:438
|
||||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:536
|
||||
#: src/rougail/output_doc/utils.py:448
|
||||
msgid "Identifiers"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:790 src/rougail/output_doc/utils.py:799
|
||||
#: src/rougail/output_doc/utils.py:805 src/rougail/output_doc/utils.py:811
|
||||
#: src/rougail/output_doc/utils.py:815
|
||||
#: src/rougail/output_doc/utils.py:668 src/rougail/output_doc/utils.py:677
|
||||
#: src/rougail/output_doc/utils.py:683 src/rougail/output_doc/utils.py:689
|
||||
#: src/rougail/output_doc/utils.py:693
|
||||
msgid "(default)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:1123
|
||||
#: src/rougail/output_doc/utils.py:945
|
||||
msgid "{0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -39,11 +39,6 @@ from rougail.convert.object_model import (
|
|||
CONVERT_OPTION,
|
||||
)
|
||||
|
||||
try:
|
||||
from rougail.user_data_risotto.utils import RisottoCalculation
|
||||
except ImportError as err:
|
||||
RisottoCalculation = None
|
||||
|
||||
|
||||
class Annotator(Walk):
|
||||
"""Annotate for documentation"""
|
||||
|
|
@ -62,7 +57,9 @@ class Annotator(Walk):
|
|||
if "force_default_value" in kwargs:
|
||||
self.default_values = kwargs["force_default_value"]
|
||||
else:
|
||||
self.default_values = self.objectspace.rougailconfig["doc.default_values"]
|
||||
self.default_values = self.objectspace.rougailconfig[
|
||||
"doc.default_values"
|
||||
]
|
||||
self.regexp_description_get_paths = None
|
||||
self.populate_family()
|
||||
self.populate_variable()
|
||||
|
|
@ -155,7 +152,6 @@ class Annotator(Walk):
|
|||
variable.choices,
|
||||
variable.version,
|
||||
)
|
||||
self.manage_test(variable)
|
||||
default = variable.default
|
||||
if default is None and path in self.objectspace.default_multi:
|
||||
default = self.objectspace.default_multi[path]
|
||||
|
|
@ -171,6 +167,12 @@ class Annotator(Walk):
|
|||
variable.validators,
|
||||
variable.version,
|
||||
)
|
||||
if (
|
||||
self.default_values
|
||||
and path in self.objectspace.leaders
|
||||
and not default
|
||||
):
|
||||
self.add_examples_values(variable)
|
||||
self.add_informations_from_properties(variable)
|
||||
if path in self.objectspace.forced_descriptions:
|
||||
self.objectspace.informations.add(
|
||||
|
|
@ -179,15 +181,6 @@ class Annotator(Walk):
|
|||
True,
|
||||
)
|
||||
|
||||
def manage_test(self, variable):
|
||||
# for version 1.0 and 1.1
|
||||
values = self.objectspace.informations.get(variable.path).get("examples", None)
|
||||
if values:
|
||||
return
|
||||
values = self.objectspace.informations.get(variable.path).get("test", None)
|
||||
if values:
|
||||
self.objectspace.informations.add(variable.path, "examples", values)
|
||||
|
||||
def add_informations_from_properties(
|
||||
self,
|
||||
variable: dict,
|
||||
|
|
@ -294,14 +287,16 @@ class Annotator(Walk):
|
|||
"propertyerror": values.propertyerror,
|
||||
}
|
||||
if isinstance(values, InformationCalculation):
|
||||
return self.calculation_to_information_information(values, version, path)
|
||||
if isinstance(values, IdentifierPropertyCalculation):
|
||||
ret = {}
|
||||
self.when_to_condition(values, ret)
|
||||
ret["type"] = "identifier"
|
||||
return ret
|
||||
if isinstance(values, IdentifierCalculation):
|
||||
return {"type": "identifier"}
|
||||
return self.calculation_to_information_information(
|
||||
values, version, path
|
||||
)
|
||||
if isinstance(values, (IdentifierCalculation, IdentifierPropertyCalculation)):
|
||||
return {
|
||||
"type": "identifier",
|
||||
"value": self.calculation_to_information_identifier(
|
||||
values, prop, version
|
||||
),
|
||||
}
|
||||
if isinstance(values, IndexCalculation):
|
||||
return {
|
||||
"type": "index",
|
||||
|
|
@ -312,61 +307,49 @@ class Annotator(Walk):
|
|||
"type": "namespace",
|
||||
"value": True,
|
||||
}
|
||||
if RisottoCalculation and isinstance(values, RisottoCalculation):
|
||||
# FIXME
|
||||
return {
|
||||
"type": "risotto",
|
||||
"value": True,
|
||||
}
|
||||
raise Exception(f'unknown calculation {type(values)} "{values}"')
|
||||
|
||||
def calculation_to_information_variable(
|
||||
self, variable_path: str, values, prop: str, version: str, path: str
|
||||
) -> str:
|
||||
variable, identifiers = self.objectspace.paths.get_with_dynamic(
|
||||
# is optional
|
||||
variable = self.objectspace.paths.get_with_dynamic(
|
||||
variable_path,
|
||||
path,
|
||||
values.version,
|
||||
values.namespace,
|
||||
values.xmlfiles,
|
||||
)
|
||||
if not variable or (
|
||||
isinstance(values, VariableCalculation) and values.optional and not variable
|
||||
):
|
||||
)[0]
|
||||
if not variable or (isinstance(values, VariableCalculation) and values.optional and not variable):
|
||||
return None
|
||||
values_calculation = {"path": variable.path}
|
||||
if identifiers:
|
||||
values_calculation["identifiers"] = identifiers
|
||||
if prop in PROPERTY_ATTRIBUTE:
|
||||
# get comparative value
|
||||
self.when_to_condition(values, values_calculation)
|
||||
# values_calculation["transitive"] = values.propertyerror == "transitive"
|
||||
if values.when_not is not undefined:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = values.when_not
|
||||
values_calculation["condition"] = "when_not"
|
||||
elif values.when is not undefined:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = values.when
|
||||
values_calculation["condition"] = "when"
|
||||
elif values.propertyerror == "transitive":
|
||||
values_calculation["type"] = "transitive"
|
||||
else:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = True
|
||||
values_calculation["condition"] = "when"
|
||||
else:
|
||||
values_calculation["type"] = "variable"
|
||||
return values_calculation
|
||||
|
||||
def when_to_condition(self, values, values_calculation):
|
||||
if values.when_not is not undefined:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = values.when_not
|
||||
values_calculation["condition"] = "when_not"
|
||||
elif values.when is not undefined:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = values.when
|
||||
values_calculation["condition"] = "when"
|
||||
elif values.propertyerror == "transitive":
|
||||
values_calculation["type"] = "transitive"
|
||||
else:
|
||||
values_calculation["type"] = "condition"
|
||||
values_calculation["value"] = True
|
||||
values_calculation["condition"] = "when"
|
||||
|
||||
def calculation_to_information_information(
|
||||
self, values, version: str, path: str
|
||||
) -> Union[str, bool]:
|
||||
values_calculation = {
|
||||
"type": "information",
|
||||
"information": values.information,
|
||||
}
|
||||
values_calculation = {"type": "information",
|
||||
"information": values.information,
|
||||
}
|
||||
if values.variable:
|
||||
variable = self.objectspace.paths.get_with_dynamic(
|
||||
values.variable,
|
||||
|
|
@ -380,6 +363,16 @@ class Annotator(Walk):
|
|||
values_calculation["path"] = variable.path
|
||||
return values_calculation
|
||||
|
||||
def calculation_to_information_identifier(
|
||||
self, values, prop: str, version: str
|
||||
) -> Union[str, bool]:
|
||||
if version != "1.0" and prop in PROPERTY_ATTRIBUTE:
|
||||
if values.when is not undefined:
|
||||
return _('when the identifier is "{0}"').format(values.when)
|
||||
if values.when_not is not undefined:
|
||||
return _('when the identifier is not "{0}"').format(values.when_not)
|
||||
return True
|
||||
|
||||
def get_path_from_variable(self, values, version: str, path: str) -> str:
|
||||
variable_path = values.variable
|
||||
paths = self.objectspace.paths
|
||||
|
|
|
|||
|
|
@ -58,34 +58,18 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
if previous["type"] == "variable":
|
||||
if "identifiers" in previous:
|
||||
for identifiers in previous["identifiers"]:
|
||||
self._removed_variables.append(
|
||||
calc_path(
|
||||
previous["path"],
|
||||
formatter=self.formatter,
|
||||
identifiers=identifiers,
|
||||
)
|
||||
)
|
||||
self._removed_variables.append(calc_path(previous["path"], self.formatter, identifiers))
|
||||
else:
|
||||
self._removed_variables.append(
|
||||
calc_path(previous["path"], formatter=self.formatter)
|
||||
)
|
||||
self._removed_variables.append(calc_path(previous["path"], self.formatter))
|
||||
else:
|
||||
self.parser(previous["children"], {})
|
||||
elif previous["type"] != new["type"]:
|
||||
if previous["type"] == "variable":
|
||||
if "identifiers" in previous:
|
||||
for identifiers in previous["identifiers"]:
|
||||
self._removed_variables.append(
|
||||
calc_path(
|
||||
previous["path"],
|
||||
formatter=self.formatter,
|
||||
identifiers=identifiers,
|
||||
)
|
||||
)
|
||||
self._removed_variables.append(calc_path(previous["path"], self.formatter, identifiers))
|
||||
else:
|
||||
self._removed_variables.append(
|
||||
calc_path(previous["path"], formatter=self.formatter)
|
||||
)
|
||||
self._removed_variables.append(calc_path(previous["path"], self.formatter))
|
||||
self.parser({}, new["children"])
|
||||
else:
|
||||
self._added_variables.append(new)
|
||||
|
|
@ -159,7 +143,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.tabular(),
|
||||
self.formatter.end_family(self.level),
|
||||
self.formatter.end_family(self.level)
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
|
|
@ -175,7 +159,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.tabular(),
|
||||
self.formatter.end_family(self.level),
|
||||
self.formatter.end_family(self.level)
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
|
|
@ -189,7 +173,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.list(self._removed_variables, inside_tabular=False),
|
||||
self.formatter.end_family(self.level),
|
||||
self.formatter.end_family(self.level)
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
|
|
|
|||
|
|
@ -1,739 +0,0 @@
|
|||
"""
|
||||
Silique (https://www.silique.fr)
|
||||
Copyright (C) 2024-2026
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation, either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||
details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
from warnings import warn
|
||||
from typing import Optional
|
||||
|
||||
from tiramisu import Calculation, groups
|
||||
from tiramisu.error import display_list, PropertiesOptionError
|
||||
from rougail.tiramisu import display_xmlfiles
|
||||
from rougail.utils import PROPERTY_ATTRIBUTE
|
||||
from rougail.error import VariableCalculationDependencyError, RougailWarning, ExtensionError
|
||||
|
||||
from .utils import dump, to_phrase, calc_path
|
||||
from .i18n import _
|
||||
|
||||
|
||||
HIDDEN_PROPERTIES = [
|
||||
"hidden",
|
||||
"disabled",
|
||||
]
|
||||
|
||||
DISABLED_PROPERTIES = ["disabled"]
|
||||
|
||||
|
||||
class _ToString:
|
||||
def _to_string(
|
||||
self,
|
||||
child,
|
||||
prop,
|
||||
do_not_raise=False,
|
||||
):
|
||||
calculation = child.information.get(f"{prop}_calculation", None)
|
||||
if not calculation:
|
||||
if do_not_raise:
|
||||
return None
|
||||
raise ExtensionError(
|
||||
_(
|
||||
'cannot find "{0}_calculation" information, '
|
||||
"do you have annotate this configuration?"
|
||||
).format(prop)
|
||||
)
|
||||
if isinstance(calculation, list):
|
||||
values = []
|
||||
for cal in calculation:
|
||||
value = self._calculation_to_string(child, cal, prop)
|
||||
if value is not None:
|
||||
values.append(value)
|
||||
return values
|
||||
ret = self._calculation_to_string(child, calculation, prop)
|
||||
if isinstance(ret, list) and len(ret) == 1:
|
||||
return ret[0]
|
||||
return ret
|
||||
|
||||
def _calculation_to_string(self, child, calculation, attribute_type):
|
||||
if "description" in calculation:
|
||||
values = calculation
|
||||
if self.document_a_type and "variables" in values:
|
||||
for variable in list(values["variables"]):
|
||||
variable["path"] = self.doc_path(variable["path"])
|
||||
|
||||
elif "type" not in calculation:
|
||||
values = calculation["value"]
|
||||
elif calculation["type"] == "jinja":
|
||||
values = self._calculation_jinja_to_string(
|
||||
child, calculation, attribute_type
|
||||
)
|
||||
elif calculation["type"] == "variable":
|
||||
values = self._calculation_variable_to_string(
|
||||
child, calculation, attribute_type
|
||||
)
|
||||
elif calculation["type"] == "identifier":
|
||||
values = self._calculation_identifier_to_string(
|
||||
child, calculation, attribute_type
|
||||
)
|
||||
elif calculation["type"] == "information":
|
||||
if "path" in calculation:
|
||||
variable_path = self.doc_path(calculation["path"])
|
||||
values = _(
|
||||
'the value of the information "{0}" of the variable "{1}"'
|
||||
).format(calculation["information"], variable_path)
|
||||
else:
|
||||
values = _('the value of the global information "{0}"').format(
|
||||
calculation["information"]
|
||||
)
|
||||
else:
|
||||
values = _("the value of the {0}").format(calculation["type"])
|
||||
return values
|
||||
|
||||
def _calculation_jinja_to_string(self, child, calculation, attribute_type):
|
||||
if calculation["value"] is not True:
|
||||
values = calculation["value"]
|
||||
else:
|
||||
values = _("depends on a calculation")
|
||||
warning = _(
|
||||
'"{0}" is a calculation for {1} but has no description in {2}'
|
||||
).format(
|
||||
attribute_type,
|
||||
self.doc_path(child.path(uncalculated=True)),
|
||||
display_xmlfiles(child.information.get("ymlfiles")),
|
||||
)
|
||||
warn(
|
||||
warning,
|
||||
RougailWarning,
|
||||
)
|
||||
return values
|
||||
|
||||
def _calculation_variable_to_string(self, child, calculation, attribute_type):
|
||||
if attribute_type in PROPERTY_ATTRIBUTE:
|
||||
func = self._calculation_variable_to_string_known_property
|
||||
else:
|
||||
func = self._calculation_variable_to_string_not_properties
|
||||
return func(child, calculation, attribute_type)
|
||||
|
||||
def _calculation_variable_to_string_known_property(self, child, informations, prop):
|
||||
condition = informations["value"]
|
||||
variable_path = condition["path"]
|
||||
values = []
|
||||
option = self.true_config.option(variable_path)
|
||||
if option.isdynamic():
|
||||
variables = self._get_annotation_variable(
|
||||
option, condition.get("identifiers")
|
||||
)
|
||||
else:
|
||||
option = self.true_config.option(variable_path)
|
||||
try:
|
||||
is_inaccessible = self.is_inaccessible_user_data(option)
|
||||
except AttributeError as err:
|
||||
if err.code != "option-not-found":
|
||||
raise err from err
|
||||
is_inaccessible = True
|
||||
if is_inaccessible:
|
||||
variables = [[None, None, None]]
|
||||
else:
|
||||
description = self._convert_description(
|
||||
option.description(uncalculated=True),
|
||||
"description",
|
||||
its_a_path=False,
|
||||
)
|
||||
variables = [[variable_path, description, None]]
|
||||
for cpath, description, identifiers in variables:
|
||||
if not cpath:
|
||||
# we cannot access to this variable, so try with permissive
|
||||
if condition["type"] == "transitive":
|
||||
value = None
|
||||
else:
|
||||
value = condition["value"]
|
||||
option = self.true_config.forcepermissive.option(variable_path)
|
||||
try:
|
||||
variable_value = self._get_unmodified_default_value(option)
|
||||
except PropertiesOptionError as err:
|
||||
if informations["propertyerror"] is True:
|
||||
raise err from err
|
||||
if informations["propertyerror"] == "transitive":
|
||||
return True
|
||||
return False
|
||||
except VariableCalculationDependencyError:
|
||||
values.append(_("depends on an undocumented variable"))
|
||||
continue
|
||||
except AttributeError as err:
|
||||
return informations.get("default", False)
|
||||
if condition["type"] == "transitive":
|
||||
return True
|
||||
if prop in HIDDEN_PROPERTIES:
|
||||
condition_type = condition["condition"]
|
||||
if (
|
||||
condition_type == "when"
|
||||
and value == variable_value
|
||||
or condition_type == "when_not"
|
||||
and value != variable_value
|
||||
):
|
||||
# always "prop"
|
||||
return True
|
||||
return False
|
||||
if condition["type"] == "transitive":
|
||||
submsg = _('is "{0}"').format(prop)
|
||||
else:
|
||||
condition_type = condition["condition"]
|
||||
conditions = []
|
||||
if not informations["propertyerror"]:
|
||||
conditions.append(_("is accessible"))
|
||||
if informations["optional"]:
|
||||
conditions.append(_("is defined"))
|
||||
value = condition["value"]
|
||||
if not isinstance(value, str):
|
||||
value = dump(value)
|
||||
if condition_type == "when_not":
|
||||
conditions.append(_('hasn\'t the value "{0}"').format(value))
|
||||
else:
|
||||
conditions.append(_('has the value "{0}"').format(value))
|
||||
submsg = display_list(conditions, sort=False)
|
||||
if informations["propertyerror"] == "transitive":
|
||||
submsg = display_list(
|
||||
[_("is {0}").format(prop), submsg], separator="or", sort=False
|
||||
)
|
||||
msg = _('when the variable "{{0}}" {0}').format(submsg)
|
||||
path_obj = {
|
||||
"path": self.doc_path(variable_path),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
|
||||
values.append(
|
||||
{
|
||||
"message": msg,
|
||||
"path": path_obj,
|
||||
"description": description,
|
||||
}
|
||||
)
|
||||
if len(values) == 1:
|
||||
return values[0]
|
||||
return values
|
||||
|
||||
def _calculation_variable_to_string_not_properties(
|
||||
self, child, calculation, attribute_type
|
||||
):
|
||||
variable = self.true_config.unrestraint.option(calculation["value"]["path"])
|
||||
if calculation["optional"]:
|
||||
try:
|
||||
variable.get()
|
||||
except AttributeError:
|
||||
return None
|
||||
true_msg = _('the value of the variable "{0}" if it is defined')
|
||||
else:
|
||||
true_msg = _('the value of the variable "{0}"')
|
||||
if not variable.isdynamic():
|
||||
func = self._calculation_normal_variable_to_string_not_properties
|
||||
else:
|
||||
func = self._calculation_dynamic_variable_to_string_not_properties
|
||||
return func(variable, calculation["value"], true_msg)
|
||||
|
||||
def _calculation_normal_variable_to_string_not_properties(
|
||||
self, child, obj, true_msg
|
||||
):
|
||||
isfollower = child.isfollower()
|
||||
if not isfollower and self.is_inaccessible_user_data(child):
|
||||
uncalculated = child.value.default(uncalculated=True)
|
||||
if uncalculated and not isinstance(uncalculated, Calculation):
|
||||
if isinstance(uncalculated, list):
|
||||
return {
|
||||
"submessage": _("(from an undocumented variable)"),
|
||||
"values": uncalculated,
|
||||
}
|
||||
else:
|
||||
if not isinstance(uncalculated, str):
|
||||
uncalculated = dump(uncalculated)
|
||||
true_msg = _("{0} (from an undocumented variable)").format(
|
||||
uncalculated
|
||||
)
|
||||
else:
|
||||
true_msg = _("the value of an undocumented variable")
|
||||
try:
|
||||
description = self._convert_description(
|
||||
child.description(uncalculated=True), "description", its_a_path=False
|
||||
)
|
||||
except AttributeError:
|
||||
description = path
|
||||
return {
|
||||
"message": true_msg,
|
||||
"path": obj,
|
||||
"description": description,
|
||||
}
|
||||
|
||||
def _calculation_dynamic_variable_to_string_not_properties(
|
||||
self, child, obj, true_msg
|
||||
):
|
||||
values = []
|
||||
for path, description, identifiers in self._get_annotation_variable(
|
||||
child, obj.get("identifiers")
|
||||
):
|
||||
cpath = calc_path(path, identifiers=identifiers)
|
||||
variable = self.true_config.option(cpath)
|
||||
path_obj = {
|
||||
"path": self.doc_path(path),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
values.append(
|
||||
self._calculation_normal_variable_to_string_not_properties(
|
||||
variable, path_obj, true_msg
|
||||
)
|
||||
)
|
||||
return values
|
||||
|
||||
def _calculation_identifier_to_string(self, child, calculation, attribute_type):
|
||||
if attribute_type in PROPERTY_ATTRIBUTE:
|
||||
if calculation["condition"] == "when":
|
||||
return _('when the identifier is "{0}"').format(calculation["value"])
|
||||
if calculation["condition"] == "when_not":
|
||||
return _('when the identifier is not "{0}"').format(
|
||||
calculation["value"]
|
||||
)
|
||||
return True
|
||||
else:
|
||||
return _("the value of the identifier")
|
||||
|
||||
def doc_path(self, path):
|
||||
if self.document_a_type:
|
||||
if not "." in path:
|
||||
return None
|
||||
return path.split(".", 1)[-1]
|
||||
return path
|
||||
|
||||
def _get_annotation_variable(self, child, ori_identifiers):
|
||||
path = child.path(uncalculated=True)
|
||||
if ori_identifiers:
|
||||
if None in ori_identifiers:
|
||||
all_identifiers = self.true_config.option(
|
||||
calc_path(path, identifiers=ori_identifiers)
|
||||
).identifiers()
|
||||
else:
|
||||
all_identifiers = [ori_identifiers]
|
||||
else:
|
||||
all_identifiers = child.identifiers()
|
||||
for identifiers in all_identifiers:
|
||||
cpath = calc_path(path, identifiers=identifiers)
|
||||
description = self._convert_description(
|
||||
child.description(uncalculated=True), "description", its_a_path=False
|
||||
)
|
||||
if child.isdynamic():
|
||||
yield path, description, identifiers.copy()
|
||||
else:
|
||||
yield path, description, None
|
||||
|
||||
|
||||
class Collect(_ToString):
|
||||
def collect_families(self, family) -> dict:
|
||||
informations = {}
|
||||
for child in family.list(uncalculated=True):
|
||||
if child.type(only_self=True) == "symlink" or (
|
||||
not child.isdynamic() and self.is_inaccessible_user_data(child)
|
||||
):
|
||||
# do not document symlink option or inacesssible variable
|
||||
# (dynamic variable could be accessible only in one context)
|
||||
continue
|
||||
if child.isoptiondescription():
|
||||
func = self.collect_family
|
||||
else:
|
||||
func = self.collect_variable
|
||||
func(child, informations)
|
||||
return informations
|
||||
|
||||
def collect_family(self, family, informations: dict) -> None:
|
||||
family_type = self._get_family_type(family)
|
||||
family_informations = self._collect_family(family, family_type)
|
||||
if family_informations is False:
|
||||
return
|
||||
sub_informations = self.collect_families(family)
|
||||
if not sub_informations:
|
||||
# a family without subfamily/subvariable
|
||||
return
|
||||
name = family.name(uncalculated=True)
|
||||
informations[name] = {
|
||||
"type": family_type,
|
||||
"informations": family_informations,
|
||||
"children": sub_informations,
|
||||
}
|
||||
|
||||
def _get_family_type(self, family) -> str:
|
||||
if self.support_namespace and family.group_type() is groups.namespace:
|
||||
return "namespace"
|
||||
if family.isleadership():
|
||||
return "leadership"
|
||||
if family.isdynamic(only_self=True):
|
||||
return "dynamic"
|
||||
return "family"
|
||||
|
||||
def _collect_family(
|
||||
self,
|
||||
family,
|
||||
family_type,
|
||||
*,
|
||||
with_identifier: bool = True,
|
||||
current_identifier_only: bool = False,
|
||||
) -> dict:
|
||||
path = family.path(uncalculated=True)
|
||||
informations = {}
|
||||
if not self._collect(family, informations, family_type=family_type):
|
||||
return False, []
|
||||
if family_type == "leadership":
|
||||
informations.setdefault("help", []).append(
|
||||
_("This family contains lists of variable blocks")
|
||||
)
|
||||
elif family_type == "dynamic":
|
||||
informations.setdefault("help", []).append(
|
||||
_("This family builds families dynamically")
|
||||
)
|
||||
if with_identifier:
|
||||
identifier = self._to_string(family, "dynamic", do_not_raise=True)
|
||||
if identifier is None:
|
||||
identifier = family.identifiers(only_self=True)
|
||||
if not isinstance(identifier, list):
|
||||
identifier = [identifier]
|
||||
informations["identifier"] = identifier
|
||||
elif family_type == "namespace":
|
||||
informations.setdefault("help", []).append(_("This family is a namespace"))
|
||||
return informations
|
||||
|
||||
def collect_variable(
|
||||
self,
|
||||
child,
|
||||
informations: dict,
|
||||
*,
|
||||
only_one=False,
|
||||
) -> Optional[dict]:
|
||||
name = child.name(uncalculated=True)
|
||||
sub_informations = {}
|
||||
if not self._collect_variable(
|
||||
child,
|
||||
sub_informations,
|
||||
):
|
||||
return None
|
||||
informations[name] = sub_informations
|
||||
if child.isleader():
|
||||
# if not self.default_values:
|
||||
# child.value.set(sub_informations["gen_examples"][0])
|
||||
return sub_informations
|
||||
return None
|
||||
|
||||
def _collect_variable(
|
||||
self,
|
||||
child,
|
||||
informations: dict,
|
||||
):
|
||||
if not self._collect(child, informations):
|
||||
return False
|
||||
informations["type"] = "variable"
|
||||
default = self._set_default(
|
||||
child,
|
||||
informations,
|
||||
)
|
||||
self._parse_type(
|
||||
child,
|
||||
informations,
|
||||
)
|
||||
if child.ismulti():
|
||||
multi = not child.isfollower() or child.issubmulti()
|
||||
else:
|
||||
multi = False
|
||||
if multi:
|
||||
informations["multiple"] = True
|
||||
examples = child.information.get("examples", None)
|
||||
if examples is None:
|
||||
examples = child.information.get("test", None)
|
||||
if examples is not None:
|
||||
if len(examples) == 1:
|
||||
name = _("Example")
|
||||
values = examples[0]
|
||||
else:
|
||||
name = _("Examples")
|
||||
values = list(examples)
|
||||
informations["examples"] = {"name": name, "values": values}
|
||||
tags = child.information.get("tags", None)
|
||||
if tags:
|
||||
if len(tags) == 1:
|
||||
name = _("Tag")
|
||||
values = tags[0]
|
||||
else:
|
||||
name = _("Tags")
|
||||
values = list(tags)
|
||||
informations["tags"] = {
|
||||
"name": name,
|
||||
"values": values,
|
||||
}
|
||||
alternative_name = child.information.get("alternative_name", None)
|
||||
if alternative_name:
|
||||
informations["alternative_name"] = alternative_name
|
||||
return True
|
||||
|
||||
def _collect(
|
||||
self,
|
||||
child,
|
||||
informations: dict,
|
||||
*,
|
||||
family_type: str = None,
|
||||
):
|
||||
display, properties = self._get_properties(child, informations)
|
||||
if not display:
|
||||
return False
|
||||
informations["path"] = self.doc_path(child.path(uncalculated=True))
|
||||
informations["name"] = child.name(uncalculated=True)
|
||||
description = self._get_description(child, family_type)
|
||||
if description is not None:
|
||||
informations["description"] = description
|
||||
help_ = child.information.get("help", None)
|
||||
if help_:
|
||||
informations["help"] = [to_phrase(help_)]
|
||||
if "properties" in informations:
|
||||
informations["properties"].extend(properties)
|
||||
else:
|
||||
informations["properties"] = properties
|
||||
properties = child.property.get(uncalculated=True)
|
||||
for mode in self.modes_level:
|
||||
if mode not in properties:
|
||||
continue
|
||||
informations["mode"] = mode
|
||||
break
|
||||
if child.isdynamic():
|
||||
informations["identifiers"] = []
|
||||
path = child.path(uncalculated=True)
|
||||
if child.has_identifiers():
|
||||
identifiers = child.identifiers()
|
||||
else:
|
||||
identifiers = [child.identifiers()]
|
||||
for identifier in identifiers:
|
||||
cpath = calc_path(path, identifiers=identifier)
|
||||
child_identifier = self.true_config.option(cpath)
|
||||
if not self.is_inaccessible_user_data(child_identifier):
|
||||
informations["identifiers"].append(identifier)
|
||||
if not informations["identifiers"]:
|
||||
informations["identifiers"] = [["example"]]
|
||||
return True
|
||||
|
||||
def _parse_type(
|
||||
self,
|
||||
child,
|
||||
informations,
|
||||
):
|
||||
variable_type = child.information.get("type")
|
||||
doc_type = self.convert_option.get(variable_type, {"params": {}})
|
||||
informations["variable_type"] = doc_type.get("msg", variable_type)
|
||||
# extra parameters for types
|
||||
option = child.get()
|
||||
validators = []
|
||||
if "params" in doc_type:
|
||||
for param, msg in doc_type["params"].items():
|
||||
value = option.impl_get_extra(f"_{param}")
|
||||
if value is None:
|
||||
value = option.impl_get_extra(param)
|
||||
if value is not None and value is not False:
|
||||
if isinstance(value, set):
|
||||
value = list(value)
|
||||
if isinstance(value, list):
|
||||
value = display_list(value, add_quote=True)
|
||||
if "doc" in msg:
|
||||
validators.append(msg["doc"].format(value))
|
||||
else:
|
||||
validators.append(msg["description"].format(value))
|
||||
|
||||
# get validation information from annotator
|
||||
for name in child.information.list():
|
||||
if not name.startswith("validators_calculation"):
|
||||
continue
|
||||
validators.extend(
|
||||
self._to_string(
|
||||
child,
|
||||
"validators",
|
||||
)
|
||||
)
|
||||
break
|
||||
if variable_type == "regexp":
|
||||
validators.append(
|
||||
_('text based with regular expressions "{0}"').format(child.pattern())
|
||||
)
|
||||
if validators:
|
||||
if len(validators) == 1:
|
||||
key = _("Validator")
|
||||
validators = validators[0]
|
||||
else:
|
||||
key = _("Validators")
|
||||
informations["validators"] = {"name": key, "values": validators}
|
||||
if variable_type == "choice":
|
||||
choices = self._to_string(child, "choice", do_not_raise=True)
|
||||
if choices is None:
|
||||
choices = child.value.list(uncalculated=True)
|
||||
for idx, val in enumerate(choices):
|
||||
if isinstance(val, Calculation):
|
||||
choices[idx] = self._to_string(child, "choice", f"_{idx}")
|
||||
informations["choices"] = {"name": _("Choices"), "values": choices}
|
||||
|
||||
def _get_properties(
|
||||
self,
|
||||
child,
|
||||
child_informations,
|
||||
):
|
||||
informations = []
|
||||
properties = child.property.get(uncalculated=True)
|
||||
if "not_for_commandline" in properties:
|
||||
child_informations["not_for_commandline"] = True
|
||||
for prop, translated_prop in self.property_to_string:
|
||||
annotation = False
|
||||
if child.information.get(f"{prop}_calculation", False):
|
||||
annotation = self._to_string(child, prop)
|
||||
if annotation is None and prop in HIDDEN_PROPERTIES:
|
||||
return False, []
|
||||
if annotation is True and prop in DISABLED_PROPERTIES:
|
||||
return False, []
|
||||
if not annotation:
|
||||
continue
|
||||
elif prop not in properties:
|
||||
# this property is not in the variable so, do not comment it
|
||||
continue
|
||||
elif prop in HIDDEN_PROPERTIES:
|
||||
return False, []
|
||||
prop_obj = {
|
||||
"type": "property",
|
||||
"name": translated_prop,
|
||||
"ori_name": prop,
|
||||
"access_control": prop in HIDDEN_PROPERTIES,
|
||||
}
|
||||
if annotation:
|
||||
prop_obj["annotation"] = annotation
|
||||
informations.append(prop_obj)
|
||||
return True, informations
|
||||
|
||||
def _set_default(
|
||||
self,
|
||||
child,
|
||||
informations,
|
||||
):
|
||||
default = self._to_string(child, "default", do_not_raise=True)
|
||||
if default is None and child.information.get("default_value_makes_sense", True):
|
||||
default_ = child.value.default(uncalculated=True)
|
||||
if not isinstance(default_, Calculation):
|
||||
default = default_
|
||||
if default == []:
|
||||
default = None
|
||||
if default is not None:
|
||||
informations["default"] = {"name": _("Default"), "values": default}
|
||||
|
||||
def _get_description(self, child, family_type):
|
||||
if child.information.get("forced_description", False):
|
||||
if (
|
||||
child.isoptiondescription()
|
||||
or not child.isfollower()
|
||||
or not child.index()
|
||||
):
|
||||
# all variables must have description but display error only for first slave
|
||||
msg = _('No attribute "description" for "{0}" in {1}').format(
|
||||
child.path(uncalculated=True),
|
||||
display_xmlfiles(child.information.get("ymlfiles")),
|
||||
)
|
||||
warn(
|
||||
msg,
|
||||
RougailWarning,
|
||||
)
|
||||
if family_type is not None:
|
||||
# it's a vaariable
|
||||
return self._convert_description(
|
||||
child.description(uncalculated=True), "family", its_a_path=True
|
||||
)
|
||||
return None
|
||||
var_type = "variable" if family_type is None else "family"
|
||||
return self._convert_description(
|
||||
child.description(uncalculated=True), var_type, its_a_path=False
|
||||
)
|
||||
|
||||
def _convert_description(self, description, type_, its_a_path=False):
|
||||
if not its_a_path:
|
||||
description = to_phrase(description, type_)
|
||||
return description
|
||||
|
||||
def is_inaccessible_user_data(self, child, *, only_disabled=False):
|
||||
"""If family is not accessible in read_write mode (to load user_data),
|
||||
do not comment this family
|
||||
"""
|
||||
properties = child.property.get(uncalculated=True)
|
||||
if only_disabled:
|
||||
hidden_properties = DISABLED_PROPERTIES
|
||||
else:
|
||||
hidden_properties = HIDDEN_PROPERTIES
|
||||
for hidden_property in hidden_properties:
|
||||
if hidden_property in properties:
|
||||
return True
|
||||
|
||||
calculation = child.information.get(f"{hidden_property}_calculation", None)
|
||||
if calculation:
|
||||
calculation_type = calculation.get("type")
|
||||
if (
|
||||
calculation_type == "variable"
|
||||
and calculation["value"]["type"] == "condition"
|
||||
):
|
||||
condition = calculation["value"]
|
||||
variable = self.true_config.forcepermissive.option(
|
||||
condition["path"]
|
||||
)
|
||||
try:
|
||||
variable.value.get()
|
||||
except AttributeError:
|
||||
variable = None
|
||||
if variable and self.is_inaccessible_user_data(
|
||||
variable, only_disabled=only_disabled
|
||||
):
|
||||
try:
|
||||
variable_value = self._get_unmodified_default_value(
|
||||
variable
|
||||
)
|
||||
except VariableCalculationDependencyError:
|
||||
pass
|
||||
else:
|
||||
condition_type = condition["condition"]
|
||||
value = condition["value"]
|
||||
if self.calc_condition_when(
|
||||
condition_type, value, variable_value
|
||||
):
|
||||
return True
|
||||
elif calculation_type == "identifier":
|
||||
if self.calc_condition_when(
|
||||
calculation["condition"],
|
||||
calculation["value"],
|
||||
child.identifiers()[-1],
|
||||
):
|
||||
return True
|
||||
if not child.isoptiondescription():
|
||||
for hidden_property in self.disabled_modes:
|
||||
if hidden_property in properties:
|
||||
return True
|
||||
return False
|
||||
|
||||
def calc_condition_when(self, condition, value, current_value):
|
||||
return (condition == "when" and value == current_value) or (
|
||||
condition == "when_not" and value != current_value
|
||||
)
|
||||
|
||||
def _get_unmodified_default_value(self, child):
|
||||
calculation = child.information.get(f"default_calculation", None)
|
||||
if not calculation:
|
||||
return child.value.get()
|
||||
if calculation["type"] == "variable":
|
||||
variable = self.true_config.forcepermissive.option(
|
||||
calculation["value"]["path"]
|
||||
)
|
||||
if variable and self.is_inaccessible_user_data(variable):
|
||||
return self._get_unmodified_default_value(variable)
|
||||
raise VariableCalculationDependencyError()
|
||||
|
|
@ -51,13 +51,15 @@ def get_outputs_or_tabulars(type_) -> None:
|
|||
level = obj_class.level
|
||||
if level in outputs:
|
||||
raise ImportError(
|
||||
_(
|
||||
'duplicated level rougail-output-doc for {0} "{1}": {2} and {3}'
|
||||
).format(type_, level, obj_class.name, outputs[level].name)
|
||||
_('duplicated level rougail-output-doc for {0} "{1}": {2} and {3}').format(
|
||||
type_, level, obj_class.name, outputs[level].name
|
||||
)
|
||||
)
|
||||
if obj_class.name in names:
|
||||
raise ImportError(
|
||||
_('duplicated name "{0}" in rougail-output-doc').format(obj_class.name)
|
||||
_('duplicated name "{0}" in rougail-output-doc').format(
|
||||
obj_class.name
|
||||
)
|
||||
)
|
||||
names.append(obj_class.name)
|
||||
outputs[level] = obj_class
|
||||
|
|
@ -112,7 +114,7 @@ cli:
|
|||
type: boolean
|
||||
default:
|
||||
jinja: |-
|
||||
{{{{ step.output is not propertyerror and step.output != "doc" }}}}
|
||||
{{{{ __.step.output is not propertyerror and "doc" in __.step.output }}}}
|
||||
description: {_('is true if doc is activate')}
|
||||
|
||||
doc:
|
||||
|
|
@ -122,7 +124,7 @@ doc:
|
|||
jinja: |-
|
||||
{{{{ step.output is propertyerror or step.output != 'doc' }}}}
|
||||
return_type: boolean
|
||||
description: {_('if "step.output" is not doc')}
|
||||
description: {_('if doc is not set in "step.output"')}
|
||||
|
||||
output_format:
|
||||
description: {_('The output format of the generated documentation')}
|
||||
|
|
@ -208,7 +210,7 @@ doc:
|
|||
description: {_('Variables and changelog documentation')}
|
||||
disabled:
|
||||
jinja: |-
|
||||
{{{{ step.output is propertyerror or step.output != "doc" or _.output_format == "json" or ("variables" not in _.contents and "changelog" not in _.contents) }}}}
|
||||
{{{{ step.output is propertyerror or "doc" not in step.output or _.output_format == "json" or ("variables" not in _.contents and "changelog" not in _.contents) }}}}
|
||||
return_type: boolean
|
||||
description: {_('if "_.output_format" is json or "_.contents" hasn\'t variables or changelog')}
|
||||
|
||||
|
|
@ -246,7 +248,7 @@ doc:
|
|||
description: {_('Changelog documentation')}
|
||||
disabled:
|
||||
jinja: |-
|
||||
{{{{ step.output is propertyerror or step.output != "doc" or _.output_format == "json" or "changelog" not in _.contents }}}}
|
||||
{{{{ step.output is propertyerror or "doc" not in step.output or _.output_format == "json" or "changelog" not in _.contents }}}}
|
||||
return_type: boolean
|
||||
description: {_('if changelog in not in "_.contents"')}
|
||||
|
||||
|
|
@ -259,7 +261,7 @@ doc:
|
|||
description: {_('Examples configuration')}
|
||||
disabled:
|
||||
jinja: |-
|
||||
{{{{ step.output is propertyerror or step.output != "doc" or "example" not in _.contents }}}}
|
||||
{{{{ step.output is propertyerror or "doc" not in step.output or "example" not in _.contents }}}}
|
||||
return_type: boolean
|
||||
description: {_('if example is not in "_.contents"')}
|
||||
|
||||
|
|
@ -283,5 +285,4 @@ doc:
|
|||
"level": 50,
|
||||
}
|
||||
|
||||
|
||||
__all__ = ("OutPuts", "get_rougail_config")
|
||||
|
|
|
|||
|
|
@ -16,23 +16,36 @@ You should have received a copy of the GNU Lesser General Public License
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
from typing import Union
|
||||
from warnings import warn
|
||||
from typing import Optional, Union
|
||||
from itertools import chain
|
||||
from re import compile
|
||||
|
||||
from tiramisu import groups
|
||||
from rougail.utils import get_properties_to_string
|
||||
from tiramisu import Calculation, groups
|
||||
from tiramisu.error import ConfigError, display_list, PropertiesOptionError
|
||||
from rougail.tiramisu import display_xmlfiles, normalize_family
|
||||
from rougail.utils import undefined, get_properties_to_string, PROPERTY_ATTRIBUTE
|
||||
from rougail.error import VariableCalculationDependencyError, RougailWarning
|
||||
|
||||
from .config import OutPuts
|
||||
from .i18n import _
|
||||
from .collect import Collect
|
||||
from .changelog import Changelog
|
||||
from .utils import dump, to_phrase, calc_path
|
||||
from .example import Examples
|
||||
from .changelog import Changelog
|
||||
|
||||
|
||||
class RougailOutputDoc(Collect, Examples, Changelog):
|
||||
HIDDEN_PROPERTIES = [
|
||||
"hidden",
|
||||
"disabled",
|
||||
]
|
||||
|
||||
DISABLED_PROPERTIES = ["disabled"]
|
||||
|
||||
|
||||
class RougailOutputDoc(Examples, Changelog):
|
||||
"""Rougail Output Doc:
|
||||
Generate documentation from rougail description files
|
||||
"""
|
||||
|
||||
output_name = "doc"
|
||||
|
||||
def __init__(
|
||||
|
|
@ -41,7 +54,6 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
*,
|
||||
rougailconfig: "RougailConfig" = None,
|
||||
true_config: "Config" = None,
|
||||
root_config: "Config" = None,
|
||||
**kwargs,
|
||||
):
|
||||
# Import here to avoid circular import
|
||||
|
|
@ -61,10 +73,6 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
self.true_config = config
|
||||
else:
|
||||
self.true_config = true_config
|
||||
if root_config is None:
|
||||
self.root_config = self.true_config
|
||||
else:
|
||||
self.root_config = root_config
|
||||
self.rougailconfig = rougailconfig
|
||||
self.informations = None
|
||||
self.formatter = None
|
||||
|
|
@ -86,9 +94,7 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
|
||||
def load_formatter(self) -> str:
|
||||
output_format = self.rougailconfig["doc.output_format"]
|
||||
self.formatter = self.outputs[output_format](
|
||||
self.rougailconfig, support_namespace=self.support_namespace
|
||||
)
|
||||
self.formatter = self.outputs[output_format](self.rougailconfig, support_namespace=self.support_namespace)
|
||||
|
||||
def print(self) -> None:
|
||||
ret, data = self.run()
|
||||
|
|
@ -98,7 +104,6 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
def load(self):
|
||||
self.document_a_type = self.rougailconfig["doc.document_a_type"]
|
||||
self.modes_level = self.rougailconfig["modes_level"]
|
||||
self.default_values = self.rougailconfig["doc.default_values"]
|
||||
self.disabled_modes = []
|
||||
if self.modes_level:
|
||||
for mode in self.modes_level:
|
||||
|
|
@ -114,46 +119,854 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
self.property_to_string = get_properties_to_string()
|
||||
self.outputs = OutPuts().get()
|
||||
self.dynamic_paths = {}
|
||||
if self.config.isoptiondescription():
|
||||
informations = self.collect_families(self.config.unrestraint)
|
||||
else:
|
||||
if not self.config.isoptiondescription():
|
||||
informations = {}
|
||||
self.collect_variable(self.config, informations)
|
||||
self.parse_variable(self.config, None, informations)
|
||||
else:
|
||||
config = self.config.unrestraint
|
||||
self.populate_dynamics(config=config)
|
||||
informations = self.parse_families(config)
|
||||
if informations is None:
|
||||
informations = {}
|
||||
if self.true_config != self.config:
|
||||
# build cache for dyn family
|
||||
elif self.config.type() not in ['config', 'metaconfig', 'groupconfig', 'mixconfig']:
|
||||
root_informations = {}
|
||||
infos = root_informations
|
||||
family = self.root_config
|
||||
for path in self.config.path().split("."):
|
||||
family = self.true_config
|
||||
for path in self.config.path().split('.'):
|
||||
family = family.option(path)
|
||||
name = family.name(uncalculated=True)
|
||||
if family.isoptiondescription():
|
||||
infos[name] = self.get_root_family(family)
|
||||
infos = infos[name]["children"]
|
||||
else:
|
||||
if name not in informations:
|
||||
informations = {}
|
||||
else:
|
||||
infos[name] = informations[name]
|
||||
break
|
||||
else:
|
||||
infos.update(informations)
|
||||
infos.update(informations)
|
||||
informations = root_informations
|
||||
self.informations = informations
|
||||
|
||||
def get_root_family(self, family):
|
||||
family_type = self._get_family_type(family)
|
||||
family_informations = self._collect_family(
|
||||
family_informations = self._populate_family(
|
||||
family,
|
||||
family_type,
|
||||
with_identifier=False,
|
||||
current_identifier_only=False,
|
||||
)
|
||||
if family_informations is not False:
|
||||
return {
|
||||
"type": family_type,
|
||||
"type": self._get_family_type(family),
|
||||
"informations": family_informations,
|
||||
"children": {},
|
||||
}
|
||||
|
||||
def populate_dynamics(self, *, config=None, reload=False):
|
||||
if config is None:
|
||||
config = self.config.unrestraint
|
||||
self._populate_dynamics(config, reload)
|
||||
|
||||
def _populate_dynamics(self, family, reload, uncalculated=False) -> None:
|
||||
def populate(child, uncalculated):
|
||||
if child.isoptiondescription():
|
||||
type_ = "family"
|
||||
else:
|
||||
type_ = "variable"
|
||||
if child.isdynamic():
|
||||
self.populate_dynamic(child, type_, reload, uncalculated)
|
||||
if child.isoptiondescription():
|
||||
self._populate_dynamics(child, reload, uncalculated)
|
||||
for child in family.list(uncalculated=uncalculated):
|
||||
populate(child, uncalculated)
|
||||
if not uncalculated:
|
||||
for child in family.list(uncalculated=True):
|
||||
if child.isdynamic() and child.path(uncalculated=True) not in self.dynamic_paths:
|
||||
populate(family, uncalculated=True)
|
||||
|
||||
def populate_dynamic(self, obj, type_, reload, uncalculated) -> None:
|
||||
path = obj.path(uncalculated=True)
|
||||
if path not in self.dynamic_paths:
|
||||
new_name = True
|
||||
description = obj.description(uncalculated=True)
|
||||
name = obj.name(uncalculated=True)
|
||||
self.dynamic_paths[path] = {
|
||||
"names": [],
|
||||
"identifiers": [],
|
||||
"path": self.doc_path(path),
|
||||
}
|
||||
if not obj.information.get("forced_description", False):
|
||||
self.dynamic_paths[path]["description"] = self._convert_description(
|
||||
description, type_, its_a_path=False
|
||||
)
|
||||
elif obj.isoptiondescription():
|
||||
self.dynamic_paths[path]["description"] = self._convert_description(
|
||||
description, type_, its_a_path=True
|
||||
)
|
||||
if uncalculated:
|
||||
return
|
||||
dynamic_obj = self.dynamic_paths[path]
|
||||
if reload and obj.identifiers() in dynamic_obj["identifiers"]:
|
||||
return
|
||||
dynamic_obj["names"].append(obj.name())
|
||||
dynamic_obj["identifiers"].append(obj.identifiers())
|
||||
|
||||
def parse_families(self, family) -> dict:
|
||||
informations = {}
|
||||
leader = None
|
||||
for child in family.list():
|
||||
if self.is_inaccessible_user_data(child):
|
||||
continue
|
||||
if child.type(only_self=True) == "symlink":
|
||||
continue
|
||||
if not child.isoptiondescription():
|
||||
leader = self.parse_variable(child, leader, informations)
|
||||
else:
|
||||
self.parse_family(child, informations)
|
||||
return informations
|
||||
|
||||
def is_inaccessible_user_data(self, child):
|
||||
"""If family is not accessible in read_write mode (to load user_data),
|
||||
do not comment this family
|
||||
"""
|
||||
properties = child.property.get(uncalculated=True)
|
||||
for hidden_property in HIDDEN_PROPERTIES:
|
||||
if hidden_property in properties:
|
||||
return True
|
||||
|
||||
calculation = child.information.get(f"{hidden_property}_calculation", None)
|
||||
if calculation and calculation.get("type") == "variable" and calculation["value"]["type"] == "condition":
|
||||
condition = calculation["value"]
|
||||
variable = self.true_config.forcepermissive.option(condition["path"])
|
||||
try:
|
||||
variable.value.get()
|
||||
except AttributeError:
|
||||
variable = None
|
||||
if variable and self.is_inaccessible_user_data(variable):
|
||||
try:
|
||||
variable_value = self._get_unmodified_default_value(variable)
|
||||
except VariableCalculationDependencyError:
|
||||
pass
|
||||
else:
|
||||
condition_type = condition["condition"]
|
||||
value = condition["value"]
|
||||
if (condition_type == "when" and value == variable_value) or (condition_type == "when_not" and value != variable_value):
|
||||
return True
|
||||
if not child.isoptiondescription():
|
||||
for hidden_property in self.disabled_modes:
|
||||
if hidden_property in properties:
|
||||
return True
|
||||
return False
|
||||
|
||||
def parse_family(self, family, informations: dict, *, force_injection=False) -> None:
|
||||
sub_informations = self.parse_families(family)
|
||||
if not force_injection and not sub_informations:
|
||||
return
|
||||
# if self.with_family:
|
||||
family_informations = self._populate_family(
|
||||
family,
|
||||
)
|
||||
if family_informations is not False:
|
||||
name = family.name(uncalculated=True)
|
||||
informations[name] = {
|
||||
"type": self._get_family_type(family),
|
||||
"informations": family_informations,
|
||||
"children": sub_informations,
|
||||
}
|
||||
|
||||
def parse_variable(
|
||||
self,
|
||||
variable,
|
||||
leader: dict,
|
||||
informations: dict,
|
||||
*,
|
||||
only_one=False,
|
||||
) -> Optional[dict]:
|
||||
path = variable.path(uncalculated=True)
|
||||
name = variable.name(uncalculated=True)
|
||||
potential_leader = None
|
||||
if variable.isdynamic():
|
||||
# information is already set
|
||||
potential_leader = self._parse_variable_dynamic(
|
||||
variable, leader, name, path, informations, only_one
|
||||
)
|
||||
elif variable.isfollower() and variable.index():
|
||||
self._parse_variable_follower_with_index(
|
||||
variable, leader, name, informations
|
||||
)
|
||||
else:
|
||||
potential_leader = self.parse_variable_normal(
|
||||
variable, leader, name, path, informations
|
||||
)
|
||||
if potential_leader:
|
||||
leader = potential_leader
|
||||
return leader
|
||||
|
||||
def parse_variable_normal(
|
||||
self, variable, leader, name: str, path: str, informations: dict
|
||||
) -> Optional[dict]:
|
||||
if variable.isdynamic():
|
||||
sub_informations = self.dynamic_paths[path]
|
||||
elif variable.isfollower() and path in informations: # variable.index():
|
||||
sub_informations = informations[name]
|
||||
else:
|
||||
sub_informations = {}
|
||||
if not self._populate_variable(
|
||||
variable,
|
||||
sub_informations,
|
||||
):
|
||||
return None
|
||||
self._add_examples(variable, sub_informations, leader)
|
||||
informations[name] = sub_informations
|
||||
if variable.isleader():
|
||||
return sub_informations
|
||||
return None
|
||||
|
||||
def _parse_variable_follower_with_index(
|
||||
self, variable, leader: dict, name: str, informations: dict
|
||||
) -> None:
|
||||
if (variable.index() + 1) > len(leader["gen_examples"][-1]):
|
||||
return
|
||||
informations[name]["gen_examples"][-1][variable.index()] = self._get_example(
|
||||
variable, informations[name], None
|
||||
)
|
||||
|
||||
def _parse_variable_dynamic(
|
||||
self, variable, leader, name, path, informations, only_one
|
||||
) -> None:
|
||||
# if path not in self.dynamic_paths:
|
||||
# self.populate_dynamic(variable, path)
|
||||
dynamic_variable = self.dynamic_paths[path]
|
||||
if (not only_one or path in informations) and "type" in dynamic_variable:
|
||||
dynamic_variable["gen_examples"].append(
|
||||
self._get_example(variable, dynamic_variable, leader)
|
||||
)
|
||||
if variable.isleader():
|
||||
return dynamic_variable
|
||||
if not only_one:
|
||||
return None
|
||||
return self.parse_variable_normal(variable, leader, name, path, informations)
|
||||
|
||||
def _get_family_type(self, family) -> str:
|
||||
if self.support_namespace and family.group_type() is groups.namespace:
|
||||
return "namespace"
|
||||
if family.isleadership():
|
||||
return "leadership"
|
||||
if family.isdynamic(only_self=True):
|
||||
return "dynamic"
|
||||
return "family"
|
||||
|
||||
def _populate_family(
|
||||
self,
|
||||
family,
|
||||
) -> dict:
|
||||
path = family.path(uncalculated=True)
|
||||
if family.isdynamic():
|
||||
informations = self.dynamic_paths[path]
|
||||
else:
|
||||
informations = {}
|
||||
if not self._populate(family, informations, "family"):
|
||||
return False
|
||||
if family.isleadership():
|
||||
informations.setdefault("help", []).append(
|
||||
_("This family contains lists of variable blocks")
|
||||
)
|
||||
if family.isdynamic(only_self=True):
|
||||
identifiers = self._to_string(family, "dynamic", do_not_raise=True)
|
||||
if identifiers is None:
|
||||
identifiers = family.identifiers(only_self=True)
|
||||
if not isinstance(identifiers, list):
|
||||
identifiers = [identifiers]
|
||||
informations["identifier"] = identifiers
|
||||
informations.setdefault("help", []).append(
|
||||
_("This family builds families dynamically")
|
||||
)
|
||||
return informations
|
||||
|
||||
def _populate_variable(
|
||||
self,
|
||||
variable,
|
||||
informations: dict,
|
||||
):
|
||||
informations["type"] = "variable"
|
||||
default = self._get_default(
|
||||
variable,
|
||||
)
|
||||
if default is not None:
|
||||
informations["default"] = {"name": _("Default"), "values": default}
|
||||
self._parse_type(
|
||||
variable,
|
||||
informations,
|
||||
)
|
||||
if not self._populate(variable, informations, "variable"):
|
||||
return False
|
||||
if variable.ismulti():
|
||||
multi = not variable.isfollower() or variable.issubmulti()
|
||||
else:
|
||||
multi = False
|
||||
if multi:
|
||||
informations["multiple"] = True
|
||||
examples = variable.information.get("examples", None)
|
||||
if examples is None:
|
||||
examples = variable.information.get("test", None)
|
||||
if examples is not None:
|
||||
if len(examples) == 1:
|
||||
name = _("Example")
|
||||
values = examples[0]
|
||||
else:
|
||||
name = _("Examples")
|
||||
values = list(examples)
|
||||
informations["examples"] = {
|
||||
"name": name,
|
||||
"values": values
|
||||
}
|
||||
tags = variable.information.get("tags", None)
|
||||
if tags:
|
||||
if len(tags) == 1:
|
||||
name = _("Tag")
|
||||
values = tags[0]
|
||||
else:
|
||||
name = _("Tags")
|
||||
values = list(tags)
|
||||
informations["tags"] = {
|
||||
"name": name,
|
||||
"values": values,
|
||||
}
|
||||
alternative_name = variable.information.get("alternative_name", None)
|
||||
if alternative_name:
|
||||
informations["alternative_name"] = alternative_name
|
||||
return True
|
||||
|
||||
def _populate(
|
||||
self,
|
||||
child,
|
||||
informations: dict,
|
||||
type_: str,
|
||||
):
|
||||
need_disabled, properties = self._parse_properties(child, informations)
|
||||
if not need_disabled:
|
||||
return False
|
||||
name = child.name(uncalculated=True)
|
||||
if child.information.get("forced_description", False):
|
||||
if (
|
||||
not child.isoptiondescription()
|
||||
or not self.support_namespace
|
||||
or child.group_type() is not groups.namespace
|
||||
):
|
||||
if (
|
||||
child.isoptiondescription()
|
||||
or not child.isfollower()
|
||||
or not child.index()
|
||||
):
|
||||
warning = _('No attribute "description" for "{0}" in {1}').format(
|
||||
child.path(uncalculated=True),
|
||||
display_xmlfiles(child.information.get("ymlfiles")),
|
||||
)
|
||||
warn(
|
||||
warning,
|
||||
RougailWarning,
|
||||
)
|
||||
if child.isoptiondescription():
|
||||
description = self._convert_description(
|
||||
child.description(uncalculated=True), type_, its_a_path=True
|
||||
)
|
||||
else:
|
||||
description = None
|
||||
else:
|
||||
description = self._convert_description(
|
||||
child.description(uncalculated=True), type_, its_a_path=False
|
||||
)
|
||||
if not child.isdynamic():
|
||||
informations["path"] = self.doc_path(child.path(uncalculated=True))
|
||||
informations["names"] = [child.name()]
|
||||
if description is not None:
|
||||
informations["description"] = description
|
||||
help_ = child.information.get("help", None)
|
||||
if help_:
|
||||
informations["help"] = [to_phrase(help_)]
|
||||
if "properties" in informations:
|
||||
informations["properties"].extend(properties)
|
||||
else:
|
||||
informations["properties"] = properties
|
||||
properties = child.property.get(uncalculated=True)
|
||||
for mode in self.modes_level:
|
||||
if mode not in properties:
|
||||
continue
|
||||
informations["mode"] = mode
|
||||
break
|
||||
return True
|
||||
|
||||
def _convert_description(self, description, type_, its_a_path=False):
|
||||
if not its_a_path:
|
||||
description = to_phrase(description, type_)
|
||||
return description
|
||||
|
||||
def _add_examples(self, variable, informations: dict, leader) -> None:
|
||||
if not variable.index():
|
||||
example = self._get_example(variable, informations, leader)
|
||||
informations["gen_examples"] = [example]
|
||||
informations["mandatory_without_value"] = "mandatory" in variable.property.get(
|
||||
uncalculated=True
|
||||
) and (
|
||||
not variable.information.get("default_value_makes_sense", True)
|
||||
or variable.value.get(uncalculated=True) in [None, []]
|
||||
)
|
||||
|
||||
def _get_example(self, variable, informations: dict, leader):
|
||||
example = informations.get("examples", {}).get("values")
|
||||
if example is not None:
|
||||
if isinstance(example, tuple):
|
||||
example = list(example)
|
||||
if informations.get("multiple"):
|
||||
if not isinstance(example, list):
|
||||
example = [example]
|
||||
else:
|
||||
if isinstance(example, list):
|
||||
index = variable.index()
|
||||
if index is None or len(example) - 1 >= index:
|
||||
index = 0
|
||||
example = example[index]
|
||||
else:
|
||||
if variable.information.get("fake_default", False):
|
||||
default = None
|
||||
else:
|
||||
try:
|
||||
default = variable.value.get()
|
||||
except ConfigError:
|
||||
default = None
|
||||
if default not in [None, []]:
|
||||
example = default
|
||||
else:
|
||||
example = self.get_type_default_value(
|
||||
variable, informations
|
||||
)
|
||||
if leader is not None and variable.isfollower():
|
||||
example = [example] + [undefined] * (len(leader["gen_examples"][-1]) - 1)
|
||||
return example
|
||||
|
||||
def get_type_default_value(self, variable, informations):
|
||||
example = self.convert_option.get(variable.information.get("type"), {}).get(
|
||||
"example", None
|
||||
)
|
||||
if example is None:
|
||||
example = "xxx"
|
||||
if informations.get("multiple"):
|
||||
example = [example]
|
||||
return example
|
||||
|
||||
def _parse_type(
|
||||
self,
|
||||
child,
|
||||
informations,
|
||||
):
|
||||
variable_type = child.information.get("type")
|
||||
doc_type = self.convert_option.get(variable_type, {"params": {}})
|
||||
informations["variable_type"] = doc_type.get("msg", variable_type)
|
||||
# extra parameters for types
|
||||
option = child.get()
|
||||
validators = []
|
||||
if "params" in doc_type:
|
||||
for param, msg in doc_type["params"].items():
|
||||
value = option.impl_get_extra(f"_{param}")
|
||||
if value is None:
|
||||
value = option.impl_get_extra(param)
|
||||
if value is not None and value is not False:
|
||||
if isinstance(value, set):
|
||||
value = list(value)
|
||||
if isinstance(value, list):
|
||||
value = display_list(value, add_quote=True)
|
||||
if "doc" in msg:
|
||||
validators.append(msg['doc'].format(value))
|
||||
else:
|
||||
validators.append(msg['description'].format(value))
|
||||
|
||||
# get validation information from annotator
|
||||
for name in child.information.list():
|
||||
if not name.startswith("validators_calculation"):
|
||||
continue
|
||||
validators.extend(
|
||||
self._to_string(
|
||||
child,
|
||||
"validators",
|
||||
)
|
||||
)
|
||||
break
|
||||
if variable_type == "regexp":
|
||||
validators.append(
|
||||
_('text based with regular expressions "{0}"').format(child.pattern())
|
||||
)
|
||||
if validators:
|
||||
if len(validators) == 1:
|
||||
key = _("Validator")
|
||||
validators = validators[0]
|
||||
else:
|
||||
key = _("Validators")
|
||||
informations["validators"] = {"name": key, "values": validators}
|
||||
if variable_type == "choice":
|
||||
choices = self._to_string(child, "choice", do_not_raise=True)
|
||||
if choices is None:
|
||||
choices = child.value.list()
|
||||
for idx, val in enumerate(choices):
|
||||
if isinstance(val, Calculation):
|
||||
choices[idx] = self._to_string(child, "choice", f"_{idx}")
|
||||
informations["choices"] = {"name": _("Choices"), "values": choices}
|
||||
|
||||
def _parse_properties(
|
||||
self,
|
||||
child,
|
||||
child_informations,
|
||||
):
|
||||
informations = []
|
||||
properties = child.property.get(uncalculated=True)
|
||||
for prop, translated_prop in self.property_to_string:
|
||||
if "not_for_commandline" in properties:
|
||||
child_informations["not_for_commandline"] = True
|
||||
continue
|
||||
if prop in properties:
|
||||
prop_obj = {
|
||||
"type": "property",
|
||||
"name": translated_prop,
|
||||
"ori_name": prop,
|
||||
"access_control": prop in HIDDEN_PROPERTIES,
|
||||
}
|
||||
elif child.information.get(f"{prop}_calculation", False):
|
||||
annotation = self._to_string(child, prop)
|
||||
if annotation is None or isinstance(annotation, bool):
|
||||
if (annotation is None and prop in HIDDEN_PROPERTIES) or (annotation is True and prop in DISABLED_PROPERTIES):
|
||||
return False, {}
|
||||
if not annotation or prop in DISABLED_PROPERTIES:
|
||||
continue
|
||||
prop_obj = {
|
||||
"type": "property",
|
||||
"name": translated_prop,
|
||||
"ori_name": prop,
|
||||
"access_control": prop in HIDDEN_PROPERTIES,
|
||||
}
|
||||
else:
|
||||
prop_obj = {
|
||||
"type": "property",
|
||||
"name": translated_prop,
|
||||
"ori_name": prop,
|
||||
"access_control": prop in HIDDEN_PROPERTIES,
|
||||
"annotation": annotation,
|
||||
}
|
||||
else:
|
||||
# this property is not in the variable so, do not comment it
|
||||
continue
|
||||
informations.append(prop_obj)
|
||||
return True, informations
|
||||
|
||||
def _get_default(
|
||||
self,
|
||||
variable,
|
||||
):
|
||||
default = self._to_string(variable, "default", do_not_raise=True)
|
||||
if default is not None:
|
||||
if default == []:
|
||||
default = None
|
||||
return default
|
||||
if variable.information.get("default_value_makes_sense", True):
|
||||
default_ = variable.value.get(uncalculated=True)
|
||||
if not isinstance(default_, Calculation):
|
||||
default = default_
|
||||
if default == []:
|
||||
default = None
|
||||
return default
|
||||
|
||||
def _to_string(
|
||||
self,
|
||||
child,
|
||||
prop,
|
||||
do_not_raise=False,
|
||||
):
|
||||
calculation = child.information.get(f"{prop}_calculation", None)
|
||||
if not calculation:
|
||||
if do_not_raise:
|
||||
return None
|
||||
raise Exception(
|
||||
f'cannot find "{prop}_calculation" information, '
|
||||
"do you have declare doc has a plugins?"
|
||||
)
|
||||
if isinstance(calculation, list):
|
||||
values = []
|
||||
for cal in calculation:
|
||||
value = self._calculation_to_string(child, cal, prop)
|
||||
if value is not None:
|
||||
values.append(value)
|
||||
return values
|
||||
return self._calculation_to_string(child, calculation, prop)
|
||||
|
||||
def _calculation_to_string(self, child, calculation, attribute_type):
|
||||
if "description" in calculation:
|
||||
values = calculation
|
||||
if self.document_a_type and "variables" in values:
|
||||
for variable in list(values["variables"]):
|
||||
variable["path"] = self.doc_path(variable["path"])
|
||||
|
||||
elif "type" not in calculation:
|
||||
values = calculation["value"]
|
||||
elif calculation["type"] == "jinja":
|
||||
values = self._calculation_jinja_to_string(child, calculation, attribute_type)
|
||||
elif calculation["type"] == "variable":
|
||||
values = self._calculation_variable_to_string(child, calculation, attribute_type)
|
||||
elif calculation["type"] == "identifier":
|
||||
if attribute_type in PROPERTY_ATTRIBUTE:
|
||||
values = calculation["value"]
|
||||
else:
|
||||
values = _("the value of the identifier")
|
||||
elif calculation["type"] == "information":
|
||||
if "path" in calculation:
|
||||
variable_path = self.doc_path(calculation["path"])
|
||||
values = _('the value of the information "{0}" of the variable "{1}"').format(
|
||||
calculation["information"], variable_path
|
||||
)
|
||||
else:
|
||||
values = _('the value of the global information "{0}"').format(calculation["information"])
|
||||
else:
|
||||
values = _("the value of the {0}").format(calculation["type"])
|
||||
return values
|
||||
|
||||
def _calculation_jinja_to_string(self, child, calculation, attribute_type):
|
||||
if calculation["value"] is not True:
|
||||
values = calculation["value"]
|
||||
else:
|
||||
values = _("depends on a calculation")
|
||||
if (
|
||||
child.isoptiondescription()
|
||||
or not child.isfollower()
|
||||
or not child.index()
|
||||
):
|
||||
warning = _(
|
||||
'"{0}" is a calculation for {1} but has no description in {2}'
|
||||
).format(
|
||||
attribute_type,
|
||||
self.doc_path(child.path()),
|
||||
display_xmlfiles(child.information.get("ymlfiles")),
|
||||
)
|
||||
warn(
|
||||
warning,
|
||||
RougailWarning,
|
||||
)
|
||||
return values
|
||||
|
||||
def _calculation_variable_to_string(self, child, calculation, attribute_type):
|
||||
if attribute_type in PROPERTY_ATTRIBUTE:
|
||||
func = self._calculation_variable_to_string_known_property
|
||||
else:
|
||||
func = self._calculation_variable_to_string_not_properties
|
||||
return func(child, calculation, attribute_type)
|
||||
|
||||
def _calculation_variable_to_string_known_property(self, child, calculation, prop):
|
||||
condition = calculation["value"]
|
||||
variable_path = condition["path"]
|
||||
values = []
|
||||
if "{{ identifier }}" in calculation["ori_path"] or "{{ identifier }}" in variable_path:
|
||||
variables = self.get_annotation_variable(variable_path, calculation["ori_path"])
|
||||
else:
|
||||
option = self.true_config.option(variable_path)
|
||||
try:
|
||||
is_inaccessible = self.is_inaccessible_user_data(option)
|
||||
except AttributeError as err:
|
||||
if err.code != "option-not-found":
|
||||
raise err from err
|
||||
is_inaccessible = True
|
||||
if is_inaccessible:
|
||||
variables = [[None, None, None]]
|
||||
else:
|
||||
description = self._convert_description(option.description(uncalculated=True), "description", its_a_path=False)
|
||||
variables = [[variable_path, description, None]]
|
||||
for cpath, description, identifiers in variables:
|
||||
if not cpath:
|
||||
# we cannot access to this variable, so try with permissive
|
||||
if condition["type"] == "transitive":
|
||||
value = None
|
||||
else:
|
||||
value = condition["value"]
|
||||
option = self.true_config.forcepermissive.option(variable_path)
|
||||
try:
|
||||
variable_value = self._get_unmodified_default_value(option)
|
||||
except PropertiesOptionError as err:
|
||||
if calculation["propertyerror"] is True:
|
||||
raise err from err
|
||||
if calculation["propertyerror"] == "transitive":
|
||||
return True
|
||||
return False
|
||||
except VariableCalculationDependencyError:
|
||||
values.append(_("depends on an undocumented variable"))
|
||||
continue
|
||||
except AttributeError as err:
|
||||
return calculation.get("default", False)
|
||||
if condition["type"] == "transitive":
|
||||
return True
|
||||
if prop in HIDDEN_PROPERTIES:
|
||||
condition_type = condition["condition"]
|
||||
if (
|
||||
condition_type == "when"
|
||||
and value == variable_value
|
||||
or condition_type == "when_not"
|
||||
and value != variable_value
|
||||
):
|
||||
# always "prop"
|
||||
return True
|
||||
return False
|
||||
if condition["type"] == "transitive":
|
||||
submsg = _('is "{0}"').format(prop)
|
||||
else:
|
||||
condition_type = condition["condition"]
|
||||
conditions = []
|
||||
if not calculation["propertyerror"]:
|
||||
conditions.append(_("is accessible"))
|
||||
if calculation["optional"]:
|
||||
conditions.append(_("is defined"))
|
||||
value = condition["value"]
|
||||
if not isinstance(value, str):
|
||||
value = dump(value)
|
||||
if condition_type == "when_not":
|
||||
conditions.append(_(
|
||||
'hasn\'t the value "{0}"'
|
||||
).format(value))
|
||||
else:
|
||||
conditions.append(_(
|
||||
'has the value "{0}"'
|
||||
).format(value))
|
||||
submsg = display_list(conditions, sort=False)
|
||||
if calculation["propertyerror"] == "transitive":
|
||||
submsg = display_list([_("is {0}").format(prop), submsg], separator="or", sort=False)
|
||||
msg = _('when the variable "{{0}}" {0}').format(submsg)
|
||||
path_obj = {
|
||||
"path": self.doc_path(variable_path),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
|
||||
values.append({
|
||||
"message": msg,
|
||||
"path": path_obj,
|
||||
"description": description,
|
||||
})
|
||||
if len(values) == 1:
|
||||
return values[0]
|
||||
return values
|
||||
|
||||
def _calculation_variable_to_string_not_properties(self, child, calculation, attribute_type):
|
||||
if calculation["optional"]:
|
||||
path = calculation["value"]["path"]
|
||||
if "{{ identifier }}" in path:
|
||||
if path not in self.dynamic_paths:
|
||||
return None
|
||||
else:
|
||||
try:
|
||||
self.true_config.forcepermissive.option(path).get()
|
||||
except AttributeError:
|
||||
return None
|
||||
true_msg = _('the value of the variable "{0}" if it is defined')
|
||||
else:
|
||||
true_msg = _('the value of the variable "{0}"')
|
||||
if "{{ identifier }}" in calculation["ori_path"]:
|
||||
values = []
|
||||
all_is_undocumented = False
|
||||
for cpath, description, identifiers in self.get_annotation_variable(calculation["value"]["path"], calculation["ori_path"]):
|
||||
if cpath:
|
||||
all_is_undocumented = False
|
||||
path_obj = {
|
||||
"path": self.doc_path(cpath),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
values.append({
|
||||
"message": true_msg,
|
||||
"path": path_obj,
|
||||
"description": description,
|
||||
})
|
||||
else:
|
||||
if all_is_undocumented is None:
|
||||
all_is_undocumented = True
|
||||
values.append(_("the value of an undocumented variable"))
|
||||
if all_is_undocumented:
|
||||
if len(values) > 1:
|
||||
values = _("the values of undocumented variables")
|
||||
else:
|
||||
values = values[0]
|
||||
else:
|
||||
# FIXME A MUTUALISER AUSSI
|
||||
variable_path = calculation["ori_path"]
|
||||
variable = self.true_config.unrestraint.option(variable_path)
|
||||
try:
|
||||
isfollower = variable.isfollower()
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
if not isfollower and self.is_inaccessible_user_data(variable):
|
||||
try:
|
||||
uncalculated = variable.value.get(uncalculated=True)
|
||||
except PropertiesOptionError:
|
||||
true_msg = None
|
||||
else:
|
||||
if uncalculated and not isinstance(
|
||||
uncalculated, Calculation
|
||||
):
|
||||
if isinstance(uncalculated, list):
|
||||
true_msg = {
|
||||
"submessage": _(
|
||||
"(from an undocumented variable)"
|
||||
),
|
||||
"values": uncalculated,
|
||||
}
|
||||
else:
|
||||
if not isinstance(uncalculated, str):
|
||||
uncalculated = dump(uncalculated)
|
||||
true_msg = _(
|
||||
"{0} (from an undocumented variable)"
|
||||
).format(uncalculated)
|
||||
else:
|
||||
true_msg = _("depends on an undocumented variable")
|
||||
if true_msg:
|
||||
if isinstance(true_msg, dict):
|
||||
values = true_msg
|
||||
else:
|
||||
try:
|
||||
description = self._convert_description(self.true_config.option(calculation["ori_path"]).description(uncalculated=True), "description", its_a_path=False)
|
||||
except AttributeError:
|
||||
description = calculation["ori_path"]
|
||||
values = {
|
||||
"message": true_msg,
|
||||
"path": {
|
||||
"path": self.doc_path(calculation["ori_path"]),
|
||||
},
|
||||
"description": description,
|
||||
}
|
||||
else:
|
||||
values = None
|
||||
return values
|
||||
|
||||
def get_annotation_variable(self, current_path, ori_path):
|
||||
if current_path == ori_path:
|
||||
regexp = None
|
||||
else:
|
||||
regexp = compile(
|
||||
"^"
|
||||
+ ori_path.replace("{{ identifier }}", "(.*)")
|
||||
+ "$"
|
||||
)
|
||||
information = self.dynamic_paths[current_path]
|
||||
path = current_path
|
||||
for identifiers in information["identifiers"]:
|
||||
cpath = calc_path(path, identifiers=identifiers)
|
||||
if regexp and not regexp.search(cpath):
|
||||
continue
|
||||
if self.is_inaccessible_user_data(self.true_config.option(cpath)):
|
||||
yield None, None, None
|
||||
else:
|
||||
description = self._convert_description(self.true_config.option(path).description(uncalculated=True), "description", its_a_path=False)
|
||||
if "{{ identifier }}" in path:
|
||||
yield path, description, identifiers.copy()
|
||||
else:
|
||||
yield path, description, None
|
||||
|
||||
def _get_unmodified_default_value(self, child):
|
||||
calculation = child.information.get(f"default_calculation", None)
|
||||
if not calculation:
|
||||
return child.value.get()
|
||||
if calculation["type"] == "variable":
|
||||
variable = self.true_config.forcepermissive.option(calculation["value"]["path"])
|
||||
if variable and self.is_inaccessible_user_data(variable):
|
||||
return self._get_unmodified_default_value(variable)
|
||||
raise VariableCalculationDependencyError()
|
||||
|
||||
def doc_path(self, path):
|
||||
if self.document_a_type:
|
||||
if not '.' in path:
|
||||
return None
|
||||
return path.split('.', 1)[-1]
|
||||
return path
|
||||
|
|
|
|||
|
|
@ -16,23 +16,20 @@ You should have received a copy of the GNU Lesser General Public License
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
from ruamel.yaml import CommentedMap
|
||||
from ruamel.yaml.representer import RoundTripRepresenter
|
||||
|
||||
from tiramisu import Calculation, owners
|
||||
|
||||
from .utils import _, calc_path, dump
|
||||
|
||||
|
||||
from .utils import _, dump, to_phrase
|
||||
|
||||
|
||||
# XXX explicit null (see rougail-output-formatter # pylint: disable=W0511
|
||||
def represent_none(
|
||||
self, data
|
||||
): # pylint: disable=missing-function-docstring,unused-argument
|
||||
# XXX explicit null (see rougail-output-formatter
|
||||
def represent_none(self, data):
|
||||
return self.represent_scalar("tag:yaml.org,2002:null", "null")
|
||||
|
||||
|
||||
def represent_str(self, data): # pylint: disable=missing-function-docstring
|
||||
def represent_str(self, data):
|
||||
if data == "":
|
||||
return self.represent_scalar("tag:yaml.org,2002:null", "")
|
||||
return self.represent_scalar("tag:yaml.org,2002:str", data)
|
||||
|
|
@ -40,201 +37,217 @@ def represent_str(self, data): # pylint: disable=missing-function-docstring
|
|||
|
||||
RoundTripRepresenter.add_representer(type(None), represent_none)
|
||||
RoundTripRepresenter.add_representer(str, represent_str)
|
||||
# XXX # pylint: disable=W0511
|
||||
# XXX
|
||||
|
||||
|
||||
class Examples: # pylint: disable=no-member,too-few-public-methods
|
||||
"""Build examples"""
|
||||
|
||||
def __init__(self):
|
||||
self.comment_examples = None
|
||||
self.level = None
|
||||
self.comment_examples_column = None
|
||||
self.examples = None
|
||||
self.examples_mandatories = None
|
||||
|
||||
def gen_doc_examples(self):
|
||||
"""Return examples"""
|
||||
self.comment_examples = self.rougailconfig["doc.examples.comment"]
|
||||
self.level = self.rougailconfig["doc.title_level"]
|
||||
if self.comment_examples:
|
||||
self.comment_examples_column = self.rougailconfig[
|
||||
"doc.examples.comment_column"
|
||||
]
|
||||
config = self.true_config.config.copy()
|
||||
config.information.set("description_type", "description")
|
||||
config.property.read_write()
|
||||
self._set_mandatories(config)
|
||||
self.comment_examples_column = self.rougailconfig["doc.examples.comment_column"]
|
||||
self._build_examples()
|
||||
return_string = ""
|
||||
datas = []
|
||||
for only_modified in [True, False]:
|
||||
if not only_modified:
|
||||
self._set_examples(config)
|
||||
results = CommentedMap()
|
||||
true_results = results
|
||||
if self.true_config == self.config:
|
||||
root_config = config
|
||||
else:
|
||||
root_config = config.option(self.config.path())
|
||||
current_option = self.true_config
|
||||
subpaths = self.config.path().split(".")
|
||||
if not self.config.isoptiondescription():
|
||||
subpaths = subpaths[:-1]
|
||||
for subpath in subpaths:
|
||||
current_option = current_option.option(subpath)
|
||||
name = current_option.name()
|
||||
results[name] = CommentedMap()
|
||||
self._set_description(results, name, current_option)
|
||||
results = results[name]
|
||||
if root_config.isoptiondescription():
|
||||
self._example_parse_family(
|
||||
root_config.value.get(), results, only_modified
|
||||
)
|
||||
else:
|
||||
self._set_example_value(
|
||||
results, root_config, root_config.value.get(), only_modified
|
||||
)
|
||||
if results:
|
||||
if only_modified:
|
||||
title = _("Example with mandatory variables not filled in")
|
||||
if self.examples_mandatories:
|
||||
if self.document_a_type:
|
||||
col = list(self.examples_mandatories)
|
||||
if len(col) == 1:
|
||||
examples_mandatories = self.examples_mandatories[col[0]]
|
||||
else:
|
||||
title = _("Example with all variables modifiable")
|
||||
datas.extend(
|
||||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.yaml(dump(true_results)),
|
||||
self.formatter.end_family(self.level),
|
||||
]
|
||||
)
|
||||
examples_mandatories = self.examples_mandatories
|
||||
else:
|
||||
examples_mandatories = self.examples_mandatories
|
||||
datas.extend([
|
||||
self.formatter.title(
|
||||
_("Example with mandatory variables not filled in"), self.level
|
||||
),
|
||||
self.formatter.yaml(dump(examples_mandatories)),
|
||||
self.formatter.end_family(self.level),
|
||||
])
|
||||
if self.examples:
|
||||
if self.document_a_type:
|
||||
col = list(self.examples)
|
||||
if len(col) == 1:
|
||||
examples = self.examples[col[0]]
|
||||
else:
|
||||
examples = self.examples
|
||||
else:
|
||||
examples = self.examples
|
||||
datas.extend([self.formatter.title(
|
||||
_("Example with all variables modifiable"), self.level
|
||||
),
|
||||
self.formatter.yaml(dump(examples)),
|
||||
self.formatter.end_family(self.level),
|
||||
])
|
||||
return self.formatter.compute(datas)
|
||||
|
||||
def _set_mandatories(self, config):
|
||||
for calculated_too in [False, True]:
|
||||
for option in config.value.mandatory():
|
||||
if not calculated_too:
|
||||
uncalculated = option.value.default(uncalculated=True)
|
||||
if isinstance(uncalculated, Calculation):
|
||||
continue
|
||||
self._set_value_example(option, self._get_an_example(option))
|
||||
def _build_examples(self):
|
||||
examples, examples_mandatories = self._parse_examples(
|
||||
self.informations
|
||||
)
|
||||
self.examples = examples
|
||||
self.examples_mandatories = examples_mandatories
|
||||
|
||||
def _get_an_example(self, option):
|
||||
value = self._get_value_from_example(option)
|
||||
if value is None:
|
||||
variable_type = option.information.get("type")
|
||||
if variable_type == "choice":
|
||||
value = option.value.list()
|
||||
if not self._is_multi(option) and value:
|
||||
if value[0] is not None:
|
||||
value = value[0]
|
||||
elif len(value) > 1:
|
||||
value = value[1]
|
||||
else:
|
||||
value = self.convert_option.get(option.information.get("type"), {}).get(
|
||||
"example"
|
||||
)
|
||||
if value is None:
|
||||
value = "example"
|
||||
if self._is_multi(option):
|
||||
value = [value]
|
||||
if option.isfollower() and option.index() and variable_type == "string":
|
||||
value += str(option.index())
|
||||
return value
|
||||
|
||||
def _set_examples(self, config):
|
||||
def _set_example(subconfig):
|
||||
for option in subconfig:
|
||||
if option.isoptiondescription():
|
||||
_set_example(option)
|
||||
else:
|
||||
# force examples value + do not let empty value
|
||||
examples = self._get_value_from_example(option)
|
||||
if examples is None:
|
||||
if self._is_multi(option):
|
||||
if not option.value.get():
|
||||
examples = self._get_an_example(option)
|
||||
elif option.value.get() is None:
|
||||
examples = self._get_an_example(option)
|
||||
if examples is None:
|
||||
continue
|
||||
self._set_value_example(option, examples)
|
||||
|
||||
_set_example(config)
|
||||
self._set_mandatories(config)
|
||||
|
||||
def _set_value_example(self, option, value):
|
||||
if option.isleader():
|
||||
ori_len = option.value.len()
|
||||
current_len = len(value)
|
||||
if ori_len > current_len:
|
||||
for idx in reversed(range(current_len, ori_len)):
|
||||
option.value.pop(idx)
|
||||
option.value.set(value)
|
||||
|
||||
def _get_value_from_example(self, option):
|
||||
examples = option.information.get("examples", None)
|
||||
if examples is None:
|
||||
return None
|
||||
if self._is_multi(option):
|
||||
examples = list(examples)
|
||||
def _parse_examples(self, dico, dyn_parent: Optional[str] = None) -> tuple:
|
||||
if self.comment_examples:
|
||||
examples = CommentedMap()
|
||||
examples_mandatories = CommentedMap()
|
||||
else:
|
||||
examples = examples[0]
|
||||
return examples
|
||||
|
||||
def _is_multi(self, option):
|
||||
if option.isfollower():
|
||||
return option.issubmulti()
|
||||
return option.ismulti()
|
||||
|
||||
def _example_parse_family(self, config, results, only_modified):
|
||||
for option, values in config.items():
|
||||
if option.isoptiondescription():
|
||||
if option.isleadership():
|
||||
subresults = self._example_parse_leadership(values, only_modified)
|
||||
if subresults:
|
||||
name = option.name()
|
||||
results[name] = subresults
|
||||
self._set_description(results, name, option)
|
||||
else:
|
||||
subresults = CommentedMap()
|
||||
self._example_parse_family(values, subresults, only_modified)
|
||||
if subresults:
|
||||
name = option.name()
|
||||
results[name] = subresults
|
||||
self._set_description(results, name, option)
|
||||
examples = {}
|
||||
examples_mandatories = {}
|
||||
for value in dico.values():
|
||||
if value["type"] == "variable":
|
||||
parse = self._parse_examples_variable
|
||||
else:
|
||||
self._set_example_value(results, option, values, only_modified)
|
||||
parse = self._parse_examples_family
|
||||
parse(
|
||||
value, dyn_parent, examples, examples_mandatories
|
||||
)
|
||||
return examples, examples_mandatories
|
||||
|
||||
def _set_example_value(self, results, option, values, only_modified):
|
||||
if self._is_valid_owner(option, only_modified):
|
||||
name = option.name()
|
||||
results[name] = values
|
||||
self._set_description(results, name, option)
|
||||
def _parse_examples_variable(
|
||||
self,
|
||||
variable,
|
||||
dyn_parent: Optional[str],
|
||||
examples: dict,
|
||||
examples_mandatories: dict,
|
||||
) -> None:
|
||||
paths = []
|
||||
ori_path = variable["path"]
|
||||
if "identifiers" in variable:
|
||||
for idx, identifiers in enumerate(variable["identifiers"]):
|
||||
paths.append(calc_path(ori_path, identifiers=identifiers))
|
||||
else:
|
||||
paths.append(ori_path)
|
||||
for idx, path in enumerate(paths):
|
||||
path = calc_path(path)
|
||||
if dyn_parent is not None and not path.startswith(dyn_parent):
|
||||
continue
|
||||
if len(variable["names"]) == 1:
|
||||
name = variable["names"][0]
|
||||
else:
|
||||
name = variable["names"][idx]
|
||||
value = variable["gen_examples"][idx]
|
||||
examples[name] = value
|
||||
if self.comment_examples and "description" in variable:
|
||||
description = variable["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
examples.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
if variable["mandatory_without_value"]:
|
||||
examples_mandatories[name] = value
|
||||
if self.comment_examples and "description" in variable:
|
||||
description = variable["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
examples_mandatories.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
break
|
||||
|
||||
def _is_valid_owner(self, option, only_modified):
|
||||
return (
|
||||
option.type(only_self=True, translation=False) != "symlink"
|
||||
and not only_modified
|
||||
or (not option.owner.isdefault() and option.owner.get() != owners.forced)
|
||||
)
|
||||
def _parse_examples_family(
|
||||
self,
|
||||
family,
|
||||
dyn_parent: Optional[str],
|
||||
examples: dict,
|
||||
examples_mandatories: dict,
|
||||
) -> None:
|
||||
def _set_example(idx, identifiers):
|
||||
path = calc_path(ori_path, identifiers=identifiers)
|
||||
if dyn_parent is not None and not path.startswith(dyn_parent):
|
||||
return
|
||||
if len(family["informations"]["names"]) == 1:
|
||||
name = family["informations"]["names"][0]
|
||||
else:
|
||||
name = family["informations"]["names"][idx]
|
||||
if family["type"] == "leadership":
|
||||
func = self._parse_examples_leadership
|
||||
else:
|
||||
func = self._parse_examples
|
||||
ret_e, ret_m = func(
|
||||
family["children"],
|
||||
path + "." if family["type"] == "dynamic" else dyn_parent,
|
||||
)
|
||||
if ret_m:
|
||||
examples_mandatories[name] = ret_m
|
||||
if self.comment_examples and "description" in family["informations"]:
|
||||
description = family["informations"]["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
examples_mandatories.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
if ret_e:
|
||||
examples[name] = ret_e
|
||||
if self.comment_examples and "description" in family["informations"]:
|
||||
description = family["informations"]["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
examples.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
|
||||
def _example_parse_leadership(self, values, only_modified):
|
||||
leadership_iter = iter(values.items())
|
||||
leader, leader_values = next(leadership_iter)
|
||||
if not self._is_valid_owner(leader, only_modified):
|
||||
return None
|
||||
leadership = [CommentedMap() for idx in range(len(leader_values))]
|
||||
for idx, value in enumerate(leader_values):
|
||||
self._set_example_value(leadership[idx], leader, value, only_modified)
|
||||
for option, value in leadership_iter:
|
||||
idx = option.index()
|
||||
self._set_example_value(leadership[idx], option, value, only_modified)
|
||||
return leadership
|
||||
ori_path = family["informations"]["path"]
|
||||
if "identifiers" in family["informations"]:
|
||||
for idx, identifiers in enumerate(family["informations"]["identifiers"]):
|
||||
_set_example(idx, identifiers)
|
||||
else:
|
||||
_set_example(0, None)
|
||||
|
||||
def _set_description(self, results, name, option):
|
||||
if not self.comment_examples or option.information.get(
|
||||
"forced_description", False
|
||||
):
|
||||
return
|
||||
description = to_phrase(option.description())
|
||||
if description.endswith("."):
|
||||
description = description[:-1]
|
||||
results.yaml_add_eol_comment(
|
||||
description, name, column=self.comment_examples_column
|
||||
)
|
||||
def _parse_examples_leadership(
|
||||
self, leadership, dyn_parent: Optional[str] = None
|
||||
) -> tuple:
|
||||
examples = []
|
||||
examples_mandatories = []
|
||||
leader = next(iter(leadership.values()))
|
||||
paths = []
|
||||
ori_path = leader["path"]
|
||||
if "identifiers" in leader:
|
||||
for idx, identifiers in enumerate(leader["identifiers"]):
|
||||
paths.append(calc_path(ori_path, identifiers=identifiers))
|
||||
else:
|
||||
paths.append(ori_path)
|
||||
for path_idx, path in enumerate(paths):
|
||||
path = calc_path(path)
|
||||
if dyn_parent is not None and not path.startswith(dyn_parent):
|
||||
continue
|
||||
for leader_idx in range(len(leader["gen_examples"][path_idx])):
|
||||
if self.comment_examples:
|
||||
followers = CommentedMap()
|
||||
else:
|
||||
followers = {}
|
||||
for follower in leadership.values():
|
||||
if len(follower["names"]) == 1:
|
||||
name = follower["names"][0]
|
||||
else:
|
||||
name = follower["names"][path_idx]
|
||||
followers[name] = follower["gen_examples"][path_idx][leader_idx]
|
||||
if self.comment_examples and "description" in follower:
|
||||
description = follower["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
followers.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
examples.append(followers)
|
||||
if leader["mandatory_without_value"]:
|
||||
if self.comment_examples:
|
||||
followers = CommentedMap()
|
||||
else:
|
||||
followers = {}
|
||||
for follower in leadership.values():
|
||||
if not follower["mandatory_without_value"]:
|
||||
continue
|
||||
if len(follower["names"]) == 1:
|
||||
name = follower["names"][0]
|
||||
else:
|
||||
name = follower["names"][path_idx]
|
||||
followers[name] = follower["gen_examples"][path_idx][leader_idx]
|
||||
if self.comment_examples and "description" in follower:
|
||||
description = follower["description"]
|
||||
if description.endswith('.'):
|
||||
description = description[:-1]
|
||||
followers.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
|
||||
examples_mandatories.append(followers)
|
||||
break
|
||||
return examples, examples_mandatories
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -94,8 +94,8 @@ class Formatter(CommonFormatter):
|
|||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
inside_tabular: bool=True,
|
||||
type_: str="variable",
|
||||
with_enter: bool = True,
|
||||
) -> str:
|
||||
"""Display a liste of element"""
|
||||
|
|
|
|||
|
|
@ -56,12 +56,10 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def compute(self, dico):
|
||||
if self.rougailconfig["doc.true_color"]:
|
||||
force_terminal = "xterm-256color"
|
||||
force_terminal = 'xterm-256color'
|
||||
else:
|
||||
force_terminal = None
|
||||
console = self.rich_console(
|
||||
theme=self.custom_theme, force_terminal=force_terminal
|
||||
)
|
||||
console = self.rich_console(theme=self.custom_theme, force_terminal=force_terminal)
|
||||
with console.capture() as capture:
|
||||
for data in dico:
|
||||
console.print(data)
|
||||
|
|
@ -122,8 +120,8 @@ class Formatter(CommonFormatter):
|
|||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
inside_tabular: bool=True,
|
||||
type_: str="variable",
|
||||
with_enter: bool = True,
|
||||
) -> str:
|
||||
"""Display a liste of element"""
|
||||
|
|
@ -166,7 +164,7 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def yaml(self, _dump):
|
||||
"""Dump yaml part of documentation"""
|
||||
return self.rich_syntaxt(f"---\n{_dump}", "yaml")
|
||||
return self.rich_syntaxt(f'---\n{_dump}', 'yaml')
|
||||
|
||||
def link(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ from ..i18n import _
|
|||
|
||||
def to_id(path):
|
||||
# https://www.w3.org/TR/html4/types.html#type-name
|
||||
return "".join(e if e in ["-", "_", ":", "."] or e.isalnum() else ":" for e in path)
|
||||
return ''.join(e if e in ["-", "_", ":", "."] or e.isalnum() else ":" for e in path )
|
||||
|
||||
|
||||
class Formatter(CommonFormatter):
|
||||
|
|
@ -55,9 +55,7 @@ class Formatter(CommonFormatter):
|
|||
lst: List[str],
|
||||
) -> str:
|
||||
"""Display line in tabular from a list"""
|
||||
return self.enter_tabular.join(
|
||||
[l.replace("\n", self.enter_tabular) for l in lst]
|
||||
)
|
||||
return self.enter_tabular.join([l.replace("\n", self.enter_tabular) for l in lst])
|
||||
|
||||
def bold(
|
||||
self,
|
||||
|
|
@ -98,12 +96,12 @@ class Formatter(CommonFormatter):
|
|||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
inside_tabular: bool=True,
|
||||
type_: str="variable",
|
||||
with_enter: bool = True,
|
||||
):
|
||||
"""Display a liste of element"""
|
||||
if type_ == "variable":
|
||||
if type_ == 'variable':
|
||||
if inside_tabular:
|
||||
if with_enter:
|
||||
char = first_char = f"{self.enter_tabular}• "
|
||||
|
|
@ -151,25 +149,23 @@ class Formatter(CommonFormatter):
|
|||
"""Dump yaml part of documentation"""
|
||||
return f"```yaml\n---\n{_dump}\n```\n"
|
||||
|
||||
def link_variable(
|
||||
self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
description: str,
|
||||
filename: Optional[str],
|
||||
) -> str:
|
||||
def link_variable(self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
description: str,
|
||||
filename: Optional[str],
|
||||
) -> str:
|
||||
name = to_id(true_path)
|
||||
if filename:
|
||||
link = f"{filename}#{name}"
|
||||
link = f'{filename}#{name}'
|
||||
else:
|
||||
link = f"#{name}"
|
||||
link = f'#{name}'
|
||||
return f"[{description}]({link})"
|
||||
|
||||
def anchor(
|
||||
self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
) -> str:
|
||||
def anchor(self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
) -> str:
|
||||
name = to_id(true_path)
|
||||
return f'<a id="{name}" name="{name}">{path}</a>'
|
||||
|
||||
|
|
@ -205,8 +201,6 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def family_informations_ends_line(self) -> str:
|
||||
return "\\\n"
|
||||
|
||||
|
||||
#
|
||||
# def family_to_string(self, *args, **kwargs) -> List[str]:
|
||||
# lst = super().family_to_string(*args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ class Formatter(CommonFormatter):
|
|||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
inside_tabular: bool=True,
|
||||
type_: str="variable",
|
||||
with_enter: bool = True,
|
||||
) -> str:
|
||||
"""Display a liste of element"""
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ class Formatter:
|
|||
|
||||
def run(self, informations: dict, *args) -> str: # pylint: disable=unused-argument
|
||||
"""Transform to string"""
|
||||
# if root:
|
||||
# current = informations
|
||||
# for path in root.split('.'):
|
||||
# current = current[path]["children"]
|
||||
# informations = current
|
||||
# if root:
|
||||
# current = informations
|
||||
# for path in root.split('.'):
|
||||
# current = current[path]["children"]
|
||||
# informations = current
|
||||
return dumps(informations, ensure_ascii=False, indent=2)
|
||||
|
|
|
|||
|
|
@ -33,33 +33,20 @@ class Tabular(FourTabular):
|
|||
|
||||
def _add(self) -> tuple:
|
||||
first_column = self.add_first_column()
|
||||
second_column = self.get_column(
|
||||
self.description,
|
||||
self.help_,
|
||||
self.validators,
|
||||
self.choices,
|
||||
self.examples,
|
||||
self.tags,
|
||||
)
|
||||
second_column = self.get_column(self.description, self.help_, self.validators, self.choices, self.examples, self.tags)
|
||||
if second_column:
|
||||
self.second_column = True
|
||||
third_column = self.get_column(self.default)
|
||||
if third_column:
|
||||
self.third_column = True
|
||||
types = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["type"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["type"],
|
||||
)
|
||||
four_column = self.get_column(types)
|
||||
if four_column:
|
||||
self.four_column = True
|
||||
mode = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["mode", "access_control"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["mode", "access_control"],
|
||||
)
|
||||
five_column = self.get_column(mode, *self.calculated_properties)
|
||||
if five_column:
|
||||
|
|
@ -87,8 +74,5 @@ class Tabular(FourTabular):
|
|||
|
||||
def set_properties(self):
|
||||
self.properties = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["properties", "validator"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["properties", "validator"],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -33,25 +33,14 @@ class Tabular(ThreeTabular):
|
|||
|
||||
def _add(self) -> tuple:
|
||||
first_column = self.add_first_column()
|
||||
second_column = self.get_column(
|
||||
self.description,
|
||||
self.help_,
|
||||
self.validators,
|
||||
self.choices,
|
||||
self.examples,
|
||||
self.tags,
|
||||
*self.calculated_properties,
|
||||
)
|
||||
second_column = self.get_column(self.description, self.help_, self.validators, self.choices, self.examples, self.tags, *self.calculated_properties)
|
||||
if second_column:
|
||||
self.second_column = True
|
||||
third_column = self.get_column(self.default)
|
||||
if third_column:
|
||||
self.third_column = True
|
||||
types = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents="type",
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents="type",
|
||||
)
|
||||
four_column = self.get_column(types)
|
||||
if four_column:
|
||||
|
|
@ -77,8 +66,5 @@ class Tabular(ThreeTabular):
|
|||
|
||||
def set_properties(self):
|
||||
self.properties = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["properties", "mode", "access_control", "validator"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["properties", "mode", "access_control", "validator"],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -33,49 +33,31 @@ class Tabular(FiveTabular):
|
|||
|
||||
def _add(self) -> tuple:
|
||||
first_column = self.add_first_column()
|
||||
second_column = self.get_column(
|
||||
self.description, self.help_, self.examples, self.tags
|
||||
)
|
||||
second_column = self.get_column(self.description, self.help_, self.examples, self.tags)
|
||||
if second_column:
|
||||
self.second_column = True
|
||||
third_column = self.get_column(self.default)
|
||||
if third_column:
|
||||
self.third_column = True
|
||||
types = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["type"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["type"],
|
||||
)
|
||||
four_column = self.get_column(types)
|
||||
if four_column:
|
||||
self.four_column = True
|
||||
mode = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["mode", "access_control"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["mode", "access_control"],
|
||||
)
|
||||
five_column = self.get_column(mode, *self.calculated_properties)
|
||||
if five_column:
|
||||
self.five_column = True
|
||||
validators = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["validator"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["validator"],
|
||||
)
|
||||
six_column = self.get_column(validators, self.validators, self.choices)
|
||||
if six_column:
|
||||
self.six_column = True
|
||||
return (
|
||||
first_column,
|
||||
second_column,
|
||||
third_column,
|
||||
four_column,
|
||||
five_column,
|
||||
six_column,
|
||||
)
|
||||
return first_column, second_column, third_column, four_column, five_column, six_column
|
||||
|
||||
def headers(self) -> tuple:
|
||||
header = super().headers()
|
||||
|
|
@ -100,18 +82,10 @@ class Tabular(FiveTabular):
|
|||
|
||||
def set_properties(self):
|
||||
self.properties = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
contents=["properties"],
|
||||
self.informations, self.calculated_properties, self.modified_attributes, contents=["properties"],
|
||||
)
|
||||
|
||||
def set_validators(self):
|
||||
self.validators = self.formatter.convert_section_to_string(
|
||||
"validators",
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
multi=True,
|
||||
section_name=False,
|
||||
with_to_phrase=True,
|
||||
"validators", self.informations, self.modified_attributes, multi=True, section_name=False, with_to_phrase=True,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -32,15 +32,7 @@ class Tabular(TwoTabular):
|
|||
|
||||
def _add(self) -> tuple:
|
||||
first_column = self.add_first_column()
|
||||
second_column = self.get_column(
|
||||
self.description,
|
||||
self.help_,
|
||||
self.validators,
|
||||
self.choices,
|
||||
self.examples,
|
||||
self.tags,
|
||||
*self.calculated_properties,
|
||||
)
|
||||
second_column = self.get_column(self.description, self.help_, self.validators, self.choices, self.examples, self.tags, *self.calculated_properties)
|
||||
if second_column:
|
||||
self.second_column = True
|
||||
third_column = self.get_column(self.default)
|
||||
|
|
@ -66,18 +58,12 @@ class Tabular(TwoTabular):
|
|||
def set_default(self):
|
||||
if "default" in self.informations:
|
||||
self.default = self.formatter.convert_section_to_string(
|
||||
"default",
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
multi=self.multi,
|
||||
section_name=False,
|
||||
)
|
||||
"default", self.informations, self.modified_attributes, multi=self.multi, section_name=False
|
||||
)
|
||||
else:
|
||||
self.default = None
|
||||
|
||||
def set_choices(self):
|
||||
self.default_is_already_set, self.choices = (
|
||||
self.formatter.convert_choices_to_string(
|
||||
self.informations, self.modified_attributes, with_default=False
|
||||
)
|
||||
self.default_is_already_set, self.choices = self.formatter.convert_choices_to_string(
|
||||
self.informations, self.modified_attributes, with_default=False
|
||||
)
|
||||
|
|
|
|||
|
|
@ -33,24 +33,13 @@ class Tabular(CommonTabular):
|
|||
def _add(self) -> tuple:
|
||||
first_column = self.add_first_column()
|
||||
default = self.default if not self.default_is_already_set else None
|
||||
second_column = self.get_column(
|
||||
self.description,
|
||||
self.help_,
|
||||
self.validators,
|
||||
self.choices,
|
||||
default,
|
||||
self.examples,
|
||||
self.tags,
|
||||
*self.calculated_properties,
|
||||
)
|
||||
second_column = self.get_column(self.description, self.help_, self.validators, self.choices, default, self.examples, self.tags, *self.calculated_properties)
|
||||
if second_column:
|
||||
self.second_column = True
|
||||
return first_column, second_column
|
||||
|
||||
def add_first_column(self) -> str:
|
||||
return self.get_column(
|
||||
self.paths, self.properties, self.commandlines, self.environments
|
||||
)
|
||||
return self.get_column(self.paths, self.properties, self.commandlines, self.environments)
|
||||
|
||||
def headers(self) -> tuple:
|
||||
headers = [_("Variable")]
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ from tabulate import tabulate
|
|||
from rougail.tiramisu import normalize_family
|
||||
from tiramisu import undefined
|
||||
from tiramisu.error import PropertiesOptionError, display_list
|
||||
|
||||
try:
|
||||
from tiramisu_cmdline_parser.api import gen_argument_name
|
||||
except:
|
||||
|
|
@ -87,12 +86,7 @@ class CommonTabular:
|
|||
self.clear()
|
||||
return columns
|
||||
|
||||
def add(
|
||||
self,
|
||||
informations: dict,
|
||||
modified_attributes: dict,
|
||||
force_identifiers: Optional[str],
|
||||
) -> tuple:
|
||||
def add(self, informations: dict, modified_attributes: dict, force_identifiers: Optional[str]) -> tuple:
|
||||
self.informations = informations
|
||||
self.modified_attributes = modified_attributes
|
||||
self.force_identifiers = force_identifiers
|
||||
|
|
@ -113,22 +107,15 @@ class CommonTabular:
|
|||
def set_description(self):
|
||||
if "description" in self.informations:
|
||||
self.description = self.formatter.get_description(
|
||||
"variable",
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
"variable", self.informations, self.modified_attributes, self.force_identifiers,
|
||||
)
|
||||
else:
|
||||
self.description = None
|
||||
self.help_ = self.formatter.convert_list_to_string(
|
||||
"help", self.informations, self.modified_attributes
|
||||
)
|
||||
self.help_ = self.formatter.convert_list_to_string("help", self.informations, self.modified_attributes)
|
||||
|
||||
def set_choices(self):
|
||||
self.default_is_already_set, self.choices = (
|
||||
self.formatter.convert_choices_to_string(
|
||||
self.informations, self.modified_attributes
|
||||
)
|
||||
self.default_is_already_set, self.choices = self.formatter.convert_choices_to_string(
|
||||
self.informations, self.modified_attributes
|
||||
)
|
||||
|
||||
def set_type(self):
|
||||
|
|
@ -138,8 +125,8 @@ class CommonTabular:
|
|||
def set_default(self):
|
||||
if "default" in self.informations:
|
||||
self.default = self.formatter.convert_section_to_string(
|
||||
"default", self.informations, self.modified_attributes, multi=self.multi
|
||||
)
|
||||
"default", self.informations, self.modified_attributes, multi=self.multi
|
||||
)
|
||||
else:
|
||||
self.default = None
|
||||
|
||||
|
|
@ -149,80 +136,33 @@ class CommonTabular:
|
|||
)
|
||||
|
||||
def set_paths(self):
|
||||
self.paths = self.formatter.join(
|
||||
self.formatter.display_paths(
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
is_variable=True,
|
||||
)
|
||||
)
|
||||
self.paths = self.formatter.join(self.formatter.display_paths(self.informations, self.modified_attributes, self.force_identifiers, is_variable=True))
|
||||
|
||||
def set_commandline(self):
|
||||
if self.formatter.with_commandline and not self.informations.get(
|
||||
"not_for_commandline", False
|
||||
):
|
||||
commandlines = self.formatter.display_paths(
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
is_variable=True,
|
||||
is_bold=False,
|
||||
variable_prefix="--",
|
||||
with_anchor=False,
|
||||
)
|
||||
if self.type == "boolean":
|
||||
for path in self.formatter.display_paths(
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
is_variable=True,
|
||||
is_bold=False,
|
||||
is_upper=False,
|
||||
with_anchor=False,
|
||||
variable_prefix="--",
|
||||
):
|
||||
commandlines.append(
|
||||
"--" + gen_argument_name(path[2:], False, True, False)
|
||||
)
|
||||
if self.formatter.with_commandline and not self.informations.get('not_for_commandline', False):
|
||||
commandlines = self.formatter.display_paths(self.informations, self.modified_attributes, self.force_identifiers, is_variable=True, is_bold=False, variable_prefix="--", with_anchor=False)
|
||||
if self.type == 'boolean':
|
||||
for path in self.formatter.display_paths(self.informations, self.modified_attributes, self.force_identifiers, is_variable=True, is_bold=False, is_upper=False, with_anchor=False, variable_prefix="--"):
|
||||
commandlines.append("--" + gen_argument_name(path[2:], False, True, False))
|
||||
if "alternative_name" in self.informations:
|
||||
alternative_name = self.informations["alternative_name"]
|
||||
commandlines[0] = f"-{alternative_name}, {commandlines[0]}"
|
||||
if self.type == "boolean":
|
||||
commandlines[1] = (
|
||||
"-"
|
||||
+ gen_argument_name(alternative_name, True, True, False)
|
||||
+ f", {commandlines[1]}"
|
||||
)
|
||||
self.commandlines = self.formatter.section(
|
||||
_("Command line"), commandlines, force_enter=True
|
||||
)
|
||||
if self.type == 'boolean':
|
||||
commandlines[1] = "-" + gen_argument_name(alternative_name, True, True, False) + f", {commandlines[1]}"
|
||||
self.commandlines = self.formatter.section(_("Command line"), commandlines, force_enter=True)
|
||||
else:
|
||||
self.commandlines = None
|
||||
|
||||
def set_environment(self):
|
||||
if self.formatter.with_environment:
|
||||
environments = self.formatter.display_paths(
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
is_variable=True,
|
||||
is_bold=False,
|
||||
is_upper=True,
|
||||
variable_prefix=self.formatter.prefix,
|
||||
with_anchor=False,
|
||||
)
|
||||
self.environments = self.formatter.section(
|
||||
_("Environment variable"), environments
|
||||
)
|
||||
environments = self.formatter.display_paths(self.informations, self.modified_attributes, self.force_identifiers, is_variable=True, is_bold=False, is_upper=True, variable_prefix=self.formatter.prefix, with_anchor=False)
|
||||
self.environments = self.formatter.section(_("Environment variable"), environments)
|
||||
else:
|
||||
self.environments = None
|
||||
|
||||
def set_properties(self):
|
||||
self.properties = self.formatter.property_to_string(
|
||||
self.informations,
|
||||
self.calculated_properties,
|
||||
self.modified_attributes,
|
||||
self.informations, self.calculated_properties, self.modified_attributes,
|
||||
)
|
||||
|
||||
def set_validators(self):
|
||||
|
|
@ -254,7 +194,9 @@ class CommonFormatter:
|
|||
self.rougailconfig = rougailconfig
|
||||
self.support_namespace = support_namespace
|
||||
|
||||
def run(self, informations: dict, *, dico_is_already_treated=False) -> str:
|
||||
def run(
|
||||
self, informations: dict, *, dico_is_already_treated=False
|
||||
) -> str:
|
||||
"""Transform to string"""
|
||||
if informations:
|
||||
level = self.rougailconfig["doc.title_level"]
|
||||
|
|
@ -266,14 +208,12 @@ class CommonFormatter:
|
|||
self.with_commandline = self.rougailconfig["doc.tabulars.with_commandline"]
|
||||
self.with_environment = self.rougailconfig["doc.tabulars.with_environment"]
|
||||
if self.with_environment and not gen_argument_name:
|
||||
raise Exception("please install tiramisu_cmdline_parser")
|
||||
raise Exception('please install tiramisu_cmdline_parser')
|
||||
if not self.rougailconfig["main_namespace"] and self.with_environment:
|
||||
if self.support_namespace:
|
||||
self.prefix = ""
|
||||
else:
|
||||
self.prefix = (
|
||||
self.rougailconfig["doc.tabulars.environment_prefix"] + "_"
|
||||
)
|
||||
self.prefix = self.rougailconfig["doc.tabulars.environment_prefix"] + "_"
|
||||
self.with_family = not self.rougailconfig["doc.tabulars.without_family"]
|
||||
self.other_root_filenames = None
|
||||
tabular_template = self.rougailconfig["doc.tabular_template"]
|
||||
|
|
@ -312,21 +252,19 @@ class CommonFormatter:
|
|||
"""Set a text to underline"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def anchor(
|
||||
self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
) -> str:
|
||||
def anchor(self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
) -> str:
|
||||
"""Set a text to a link anchor"""
|
||||
return path
|
||||
|
||||
def link_variable(
|
||||
self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
description: str,
|
||||
filename: Optional[str],
|
||||
) -> str:
|
||||
def link_variable(self,
|
||||
path: str,
|
||||
true_path: str,
|
||||
description: str,
|
||||
filename: Optional[str],
|
||||
) -> str:
|
||||
"""Set a text link to variable anchor"""
|
||||
return path
|
||||
|
||||
|
|
@ -341,8 +279,8 @@ class CommonFormatter:
|
|||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
inside_tabular: bool=True,
|
||||
type_: str="variable",
|
||||
with_enter: bool = False,
|
||||
) -> str:
|
||||
"""Display a liste of element"""
|
||||
|
|
@ -382,18 +320,16 @@ class CommonFormatter:
|
|||
force_identifiers: Optional[str],
|
||||
*,
|
||||
is_variable=False,
|
||||
variable_prefix: str = "",
|
||||
is_bold: bool = True,
|
||||
is_upper: bool = False,
|
||||
with_anchor: bool = True,
|
||||
variable_prefix: str="",
|
||||
is_bold: bool=True,
|
||||
is_upper: bool=False,
|
||||
with_anchor: bool=True,
|
||||
) -> str:
|
||||
if with_anchor:
|
||||
anchor = self.anchor
|
||||
else:
|
||||
|
||||
def anchor(path, true_path):
|
||||
return path
|
||||
|
||||
ret_paths = []
|
||||
path = informations["path"]
|
||||
if not path:
|
||||
|
|
@ -401,34 +337,19 @@ class CommonFormatter:
|
|||
if is_bold:
|
||||
bold = self.bold
|
||||
else:
|
||||
|
||||
def bold(value):
|
||||
return value
|
||||
|
||||
if is_upper:
|
||||
|
||||
def upper(value):
|
||||
return value.upper()
|
||||
|
||||
else:
|
||||
|
||||
def upper(value):
|
||||
return value
|
||||
|
||||
if "identifiers" in modified_attributes:
|
||||
name, previous, new = modified_attributes["identifiers"]
|
||||
ret_paths.extend(
|
||||
[
|
||||
bold(
|
||||
self.delete(
|
||||
upper(
|
||||
variable_prefix
|
||||
+ calc_path(
|
||||
path, formatter=self, identifiers=identifier
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
bold(self.delete(upper(variable_prefix + calc_path(path, self, identifier))))
|
||||
for identifier in previous
|
||||
]
|
||||
)
|
||||
|
|
@ -438,7 +359,7 @@ class CommonFormatter:
|
|||
for idx, identifier in enumerate(informations["identifiers"]):
|
||||
if force_identifiers and identifier != force_identifiers:
|
||||
continue
|
||||
path_ = calc_path(path, formatter=self, identifiers=identifier)
|
||||
path_ = calc_path(path, self, identifier)
|
||||
if variable_prefix:
|
||||
path_ = variable_prefix + upper(path_)
|
||||
if not idx:
|
||||
|
|
@ -482,15 +403,12 @@ class CommonFormatter:
|
|||
namespace = False
|
||||
if self.tabular_datas.columns:
|
||||
msg.append(self.tabular())
|
||||
msg.extend(
|
||||
self.family_to_string(value["informations"], level, namespace)
|
||||
)
|
||||
msg.extend(self.family_to_string(value["informations"], level, namespace))
|
||||
msg.extend(self.dict_to_dict(value["children"], level + 1))
|
||||
msg.append(self.end_family(level))
|
||||
else:
|
||||
self.dict_to_dict(
|
||||
value["children"],
|
||||
level + 1,
|
||||
value["children"], level + 1,
|
||||
)
|
||||
if self.tabular_datas.columns and (init or self.with_family):
|
||||
msg.append(self.tabular())
|
||||
|
|
@ -509,19 +427,13 @@ class CommonFormatter:
|
|||
if namespace:
|
||||
ret = [self.namespace_to_title(informations, level)]
|
||||
else:
|
||||
ret = [
|
||||
self.title(
|
||||
self.get_description("family", informations, {}, None), level
|
||||
)
|
||||
]
|
||||
ret = [self.title(self.get_description("family", informations, {}, None), level)]
|
||||
msg = []
|
||||
helps = informations.get("help")
|
||||
if helps:
|
||||
for help_ in helps:
|
||||
msg.extend([to_phrase(h) for h in help_.strip().split("\n")])
|
||||
path = self.display_paths(
|
||||
informations, {}, None, with_anchor=False, is_bold=False
|
||||
)
|
||||
msg.extend([to_phrase(h) for h in help_.strip().split('\n')])
|
||||
path = self.display_paths(informations, {}, None, with_anchor=False, is_bold=False)
|
||||
if path:
|
||||
msg.append(self.section(_("Path"), path, type_="family"))
|
||||
calculated_properties = []
|
||||
|
|
@ -529,24 +441,18 @@ class CommonFormatter:
|
|||
if property_str:
|
||||
msg.append(property_str)
|
||||
if calculated_properties:
|
||||
msg.append(self.join(calculated_properties))
|
||||
msg.append(self.join(calculated_properties)
|
||||
)
|
||||
if "identifier" in informations:
|
||||
msg.append(
|
||||
self.section(
|
||||
_("Identifiers"), informations["identifier"], type_="family"
|
||||
)
|
||||
self.section(_("Identifiers"), informations["identifier"], type_="family")
|
||||
)
|
||||
starts_line = self.family_informations_starts_line()
|
||||
if msg:
|
||||
fam_info = self.family_informations()
|
||||
if fam_info:
|
||||
ret.append(fam_info)
|
||||
ret.append(
|
||||
self.family_informations_ends_line().join(
|
||||
[starts_line + m for m in msg]
|
||||
)
|
||||
+ self.end_family_informations()
|
||||
)
|
||||
ret.append(self.family_informations_ends_line().join([starts_line + m for m in msg]) + self.end_family_informations())
|
||||
return ret
|
||||
|
||||
def family_informations_starts_line(self) -> str:
|
||||
|
|
@ -585,22 +491,13 @@ class CommonFormatter:
|
|||
return self.stripped(self.join(datas))
|
||||
|
||||
def get_description(
|
||||
self,
|
||||
type_: str,
|
||||
informations: dict,
|
||||
modified_attributes: dict,
|
||||
force_identifiers: Optional[str],
|
||||
self, type_: str, informations: dict, modified_attributes: dict, force_identifiers: Optional[str]
|
||||
) -> str():
|
||||
def _get_description(description, identifiers, delete=False, new=[]):
|
||||
if identifiers and "{{ identifier }}" in description:
|
||||
if type_ == "variable":
|
||||
identifiers_text = display_list(
|
||||
[
|
||||
self.italic(i[-1])
|
||||
for i in identifiers
|
||||
if not force_identifiers or i == force_identifiers
|
||||
],
|
||||
separator="or",
|
||||
[self.italic(i[-1]) for i in identifiers if not force_identifiers or i == force_identifiers], separator="or"
|
||||
)
|
||||
description = description.replace(
|
||||
"{{ identifier }}", identifiers_text
|
||||
|
|
@ -649,23 +546,13 @@ class CommonFormatter:
|
|||
|
||||
# VARIABLE
|
||||
def variable_to_string(
|
||||
self,
|
||||
informations: dict,
|
||||
modified_attributes: dict = {},
|
||||
force_identifiers: Optional[str] = None,
|
||||
self, informations: dict, modified_attributes: dict = {}, force_identifiers: Optional[str]=None
|
||||
) -> None:
|
||||
"""Manage variable"""
|
||||
self.tabular_datas.add(informations, modified_attributes, force_identifiers)
|
||||
|
||||
def convert_section_to_string(
|
||||
self,
|
||||
attribute: str,
|
||||
informations: dict,
|
||||
modified_attributes: dict,
|
||||
multi: bool,
|
||||
*,
|
||||
section_name: bool = True,
|
||||
with_to_phrase=False,
|
||||
self, attribute: str, informations: dict, modified_attributes: dict, multi: bool, *, section_name: bool = True, with_to_phrase = False
|
||||
) -> str():
|
||||
values = []
|
||||
submessage = ""
|
||||
|
|
@ -705,19 +592,10 @@ class CommonFormatter:
|
|||
if old["values"] in new:
|
||||
values = self.underline(values)
|
||||
if values != []:
|
||||
return self.section(
|
||||
name,
|
||||
values,
|
||||
submessage=submessage,
|
||||
section_name=section_name,
|
||||
with_to_phrase=with_to_phrase,
|
||||
)
|
||||
return self.section(name, values, submessage=submessage, section_name=section_name, with_to_phrase=with_to_phrase)
|
||||
|
||||
def convert_choices_to_string(
|
||||
self,
|
||||
informations: dict,
|
||||
modified_attributes: dict,
|
||||
with_default: bool = True,
|
||||
self, informations: dict, modified_attributes: dict, with_default: bool = True,
|
||||
) -> str():
|
||||
default_is_already_set = False
|
||||
if "choices" in informations:
|
||||
|
|
@ -831,47 +709,23 @@ class CommonFormatter:
|
|||
informations: dict,
|
||||
calculated_properties: list,
|
||||
modified_attributes: dict,
|
||||
contents: list = ["type", "properties", "mode", "access_control", "validator"],
|
||||
contents: list = ["type", "properties", "mode", "access_control", "validator"]
|
||||
) -> str:
|
||||
"""Transform properties to string"""
|
||||
properties = []
|
||||
modified_properties = []
|
||||
if "type" in contents:
|
||||
if "type" in modified_attributes:
|
||||
properties.append(
|
||||
self.prop(
|
||||
modified_attributes["type"],
|
||||
italic=False,
|
||||
delete=True,
|
||||
underline=False,
|
||||
)
|
||||
)
|
||||
properties.append(self.prop(modified_attributes["type"], italic=False, delete=True, underline=False))
|
||||
if "multi" in modified_attributes:
|
||||
properties.append(
|
||||
self.prop("multiple", italic=False, delete=True, underline=False)
|
||||
)
|
||||
properties.append(self.prop("multiple", italic=False, delete=True, underline=False))
|
||||
if "properties" not in contents and "properties" in modified_attributes:
|
||||
for prop in modified_attributes["properties"]:
|
||||
if prop["ori_name"] == "mandatory":
|
||||
properties.append(
|
||||
self.prop(
|
||||
prop["ori_name"],
|
||||
italic=False,
|
||||
delete=True,
|
||||
underline=False,
|
||||
)
|
||||
)
|
||||
properties.append(self.prop(prop["ori_name"], italic=False, delete=True, underline=False))
|
||||
break
|
||||
if "mode" in contents and "mode" in modified_attributes:
|
||||
name, previous, new = modified_attributes["mode"]
|
||||
if previous:
|
||||
properties.append(
|
||||
self.prop(previous[0], italic=False, delete=True, underline=False)
|
||||
)
|
||||
if new:
|
||||
properties.append(
|
||||
self.prop(new[0], italic=False, delete=False, underline=True)
|
||||
)
|
||||
properties.append(self.prop(modified_attributes["mode"], italic=False, delete=True, underline=False))
|
||||
if "properties" in modified_attributes:
|
||||
if "properties" in contents:
|
||||
for props in modified_attributes["properties"]:
|
||||
|
|
@ -902,13 +756,9 @@ class CommonFormatter:
|
|||
if "validator" not in contents and data[0] == "unique":
|
||||
continue
|
||||
if p not in new:
|
||||
properties.append(
|
||||
self.prop(p, italic=False, delete=True, underline=False)
|
||||
)
|
||||
properties.append(self.prop(p, italic=False, delete=True, underline=False))
|
||||
if data[1] is not None:
|
||||
local_calculated_properties[p] = [
|
||||
{"annotation": data[1], "delete": True}
|
||||
]
|
||||
local_calculated_properties[p] = [{"annotation": data[1], "delete": True}]
|
||||
else:
|
||||
previous = new = []
|
||||
others = []
|
||||
|
|
@ -941,19 +791,14 @@ class CommonFormatter:
|
|||
others.append(prop)
|
||||
for prop in others:
|
||||
prop_name = prop["name"]
|
||||
if (
|
||||
"type" not in contents
|
||||
and prop.get("ori_name", prop_name) == "mandatory"
|
||||
):
|
||||
if "type" not in contents and prop.get("ori_name", prop_name) == "mandatory":
|
||||
continue
|
||||
if prop_name not in previous and prop_name in new:
|
||||
underline = True
|
||||
else:
|
||||
underline = False
|
||||
if prop["type"] == "type":
|
||||
properties.append(
|
||||
self.link(prop_name, ROUGAIL_VARIABLE_TYPE, underline=underline)
|
||||
)
|
||||
properties.append(self.link(prop_name, ROUGAIL_VARIABLE_TYPE, underline=underline))
|
||||
else:
|
||||
if "annotation" in prop:
|
||||
italic = True
|
||||
|
|
@ -966,15 +811,11 @@ class CommonFormatter:
|
|||
else:
|
||||
underline_ = False
|
||||
local_calculated_properties.setdefault(prop["name"], []).append(
|
||||
{"annotation": prop_annotation, "underline": underline_}
|
||||
{"annotation": prop_annotation, "underline": underline_}
|
||||
)
|
||||
else:
|
||||
italic = False
|
||||
properties.append(
|
||||
self.prop(
|
||||
prop_name, italic=italic, delete=False, underline=underline
|
||||
)
|
||||
)
|
||||
properties.append(self.prop(prop_name, italic=italic, delete=False, underline=underline))
|
||||
if local_calculated_properties:
|
||||
for (
|
||||
calculated_property_name,
|
||||
|
|
@ -1042,17 +883,12 @@ class CommonFormatter:
|
|||
if self.other_root_filenames:
|
||||
path = msg["path"]["path"]
|
||||
for root in self.other_root_filenames:
|
||||
if path == root or path.startswith(f"{root}."):
|
||||
if path == root or path.startswith(f'{root}.'):
|
||||
filename = self.other_root_filenames[root]
|
||||
break
|
||||
if "identifiers" in msg["path"]:
|
||||
msg["identifiers"] = [msg["path"]["identifiers"]]
|
||||
path = self.link_variable(
|
||||
calc_path(msg["path"], formatter=self, identifiers=identifiers),
|
||||
msg["path"]["path"],
|
||||
self.get_description("variable", msg, {}, None),
|
||||
filename=filename,
|
||||
)
|
||||
path = self.link_variable(calc_path(msg["path"], self, identifiers), msg["path"]["path"], self.get_description("variable", msg, {}, None), filename=filename)
|
||||
msg = msg["message"].format(path)
|
||||
elif "description" in msg:
|
||||
if "variables" in msg:
|
||||
|
|
@ -1062,26 +898,12 @@ class CommonFormatter:
|
|||
if self.other_root_filenames:
|
||||
path = msg["path"]
|
||||
for root in self.other_root_filenames:
|
||||
if path == root or path.startswith(f"{root}."):
|
||||
if path == root or path.startswith(f'{root}.'):
|
||||
filename = self.other_root_filenames[root]
|
||||
break
|
||||
identifiers = variable.get("identifiers")
|
||||
path = calc_path(
|
||||
variable, formatter=self, identifiers=identifiers
|
||||
)
|
||||
paths.append(
|
||||
self.link_variable(
|
||||
path,
|
||||
variable["path"],
|
||||
self.get_description(
|
||||
"variable",
|
||||
variable,
|
||||
{},
|
||||
force_identifiers=identifiers,
|
||||
),
|
||||
filename=filename,
|
||||
)
|
||||
)
|
||||
path = calc_path(variable, self, identifiers)
|
||||
paths.append(self.link_variable(path, variable["path"], self.get_description("variable", variable, {}, force_identifiers=identifiers), filename=filename))
|
||||
msg = msg["description"].format(*paths)
|
||||
else:
|
||||
msg = msg["description"]
|
||||
|
|
@ -1092,7 +914,7 @@ class CommonFormatter:
|
|||
name: str,
|
||||
msg: str,
|
||||
submessage: str = "",
|
||||
type_="variable",
|
||||
type_ = "variable",
|
||||
section_name=True,
|
||||
with_to_phrase=False,
|
||||
force_enter=False,
|
||||
|
|
@ -1126,12 +948,9 @@ class CommonFormatter:
|
|||
return submessage
|
||||
|
||||
|
||||
def calc_path(path, *, formatter=None, identifiers: List[str] = None) -> str:
|
||||
def calc_path(path, formatter=None, identifiers: List[str] = None) -> str:
|
||||
def _path_with_identifier(path, identifier):
|
||||
if identifier is None:
|
||||
identifier = "{{ __identifier__ }}"
|
||||
else:
|
||||
identifier = normalize_family(str(identifier))
|
||||
identifier = normalize_family(str(identifier))
|
||||
if formatter:
|
||||
identifier = formatter.italic(identifier)
|
||||
return path.replace("{{ identifier }}", identifier, 1)
|
||||
|
|
@ -1141,12 +960,10 @@ def calc_path(path, *, formatter=None, identifiers: List[str] = None) -> str:
|
|||
if "identifiers" in path:
|
||||
for identifier in path["identifiers"]:
|
||||
path_ = _path_with_identifier(path_, identifier)
|
||||
path_ = path_.replace("{{ __identifier__ }}", "{{ identifier }}")
|
||||
elif identifiers:
|
||||
path_ = path
|
||||
for identifier in identifiers:
|
||||
path_ = _path_with_identifier(path_, identifier)
|
||||
path_ = path_.replace("{{ __identifier__ }}", "{{ identifier }}")
|
||||
else:
|
||||
path_ = path
|
||||
return path_
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|====
|
||||
| Variable | Description
|
||||
| **var1** +
|
||||
`+++basic+++` `#standard#` `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `standard` `mandatory` | First variable. +
|
||||
`+++(None, ['basic'], ['standard'])+++` `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `standard` `mandatory` | First variable. +
|
||||
**Choices**:
|
||||
|
||||
* val1
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`(None, ['basic'], ['standard'])`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Variable </th><th>Description </th></tr>
|
||||
<tr><th>Variable </th><th>Description </th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><del>basic</del></mark> <mark><ins>standard</ins></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark> <mark>mandatory</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>val1</li>
|
||||
<tr><td><b>var1</b><br/><mark><del>(None, ['basic'], ['standard'])</del></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark> <mark>mandatory</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>val1</li>
|
||||
<li>val2 <ins><b>← (default)</b></ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`(None, ['basic'], ['standard'])`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mvar1[0m │ First variable. │
|
||||
│ [1;7m [0m[1;7;9mbasic[0m[1;7m [0m [1;7m [0m[1;4;7mstandard[0m[1;7m [0m [1;7m choice [0m [1;7m standard[0m │ [1mChoices[0m: │
|
||||
│ [1;7mmandatory [0m │ • val1 │
|
||||
│ [1;7m [0m[1;7;9m(None, ['basic'], ['standard'])[0m[1;7m [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;7mchoice [0m [1;7m standard [0m [1;7m mandatory [0m │ • val1 │
|
||||
│ │ • val2 [1;4m← (default)[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|====
|
||||
| Variable | Description
|
||||
| **var1** +
|
||||
`+++basic+++` `#standard#` `+++mandatory+++` `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `standard` | First variable. +
|
||||
`+++(None, ['basic'], ['standard'])+++` `+++mandatory+++` `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `standard` | First variable. +
|
||||
**Choices**:
|
||||
|
||||
* null +++← (default)+++
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`(None, ['basic'], ['standard'])`~~ ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Variable </th><th>Description </th></tr>
|
||||
<tr><th>Variable </th><th>Description </th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><del>basic</del></mark> <mark><ins>standard</ins></mark> <mark><del>mandatory</del></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>null <del>← (default)</del></li>
|
||||
<tr><td><b>var1</b><br/><mark><del>(None, ['basic'], ['standard'])</del></mark> <mark><del>mandatory</del></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>null <del>← (default)</del></li>
|
||||
<li>val1</li>
|
||||
<li>val2 <ins><b>← (default)</b></ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`(None, ['basic'], ['standard'])`~~ ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mvar1[0m │ First variable. │
|
||||
│ [1;7m [0m[1;7;9mbasic[0m[1;7m [0m [1;7m [0m[1;4;7mstandard[0m[1;7m [0m [1;7m [0m[1;7;9mmandatory[0m[1;7m [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;7mchoice [0m [1;7m standard [0m │ • null [9m← (default)[0m │
|
||||
│ [1;7m [0m[1;7;9m(None, ['basic'], ['standard'])[0m[1;7m [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;7;9mmandatory[0m[1;7m [0m [1;7m choice [0m [1;7m standard [0m │ • null [9m← (default)[0m │
|
||||
│ │ • val1 │
|
||||
│ │ • val2 [1;4m← (default)[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
| Variable | Description
|
||||
| **var2** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `standard` `mandatory` | My var2. +
|
||||
**Default**: the value of an undocumented variable
|
||||
**Default**: depends on an undocumented variable
|
||||
| **var3** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `advanced` `mandatory` `__hidden__` | My var3. +
|
||||
**Hidden**: var could be hidden
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@
|
|||
| Variable | Description
|
||||
| **var2** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `standard` `mandatory` | My var2. +
|
||||
**Default**: the value of an undocumented variable
|
||||
**Default**: depends on an undocumented variable
|
||||
|====
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
{}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "string"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mNew variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "string"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ Internet. │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ [4mConfigure Proxy Access to the [0m │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ [4mInternet.[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "string"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m string [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mDefault[0m: No proxy │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m [0m[1;7;9mbasic[0m[1;7m [0m [1;7m [0m[1;4;7mstandard[0m[1;7m [0m [1;7m string [0m [1;7m standard[0m │ Internet. │
|
||||
│ [1;7mmandatory [0m │ [1mDefault[0m: [4mNo proxy[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • [4mAuto-detect proxy settings for [0m │
|
||||
│ │ [4mthis network[0m │
|
||||
│ │ • [4mUse system proxy settings[0m │
|
||||
│ │ • [4mManual proxy configuration[0m │
|
||||
│ │ • [4mAutomatic proxy configuration URL[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mNew variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validator",
|
||||
"values": "type domainname"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidator[0m: type domainname │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidator[0m: [4mtype domainname[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • [4mthe domain name can be an IP[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
[1;4;96mNew variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mNew variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"https_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.https_proxy",
|
||||
"name": "https_proxy",
|
||||
"description": "HTTPS Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.https_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTPS address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.https_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTPS Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;92mHTTPS Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.https_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
[1;4;96mNew variables[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,208 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"https_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.https_proxy",
|
||||
"name": "https_proxy",
|
||||
"description": "HTTPS Proxy",
|
||||
"properties": [],
|
||||
"mode": "standard"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.https_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTPS address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.https_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTPS Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;92mHTTPS Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.https_proxy
|
||||
[34m▌ [0m[1;7m standard [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
[1;4;96mModified variables[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m [0m[1;7;9mbasic[0m[1;7m [0m [1;7m [0m[1;4;7mstandard[0m[1;7m [0m [1;7m domainname [0m [1;7m [0m │ [1mValidators[0m: │
|
||||
│ [1;7mstandard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: [4mthe value of the variable [0m │
|
||||
│ │ [4m"manual.http_proxy.address"[0m │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: [9m8080[0m │
|
||||
│ │ [4mthe value of the variable [0m │
|
||||
│ │ [4m"manual.http_proxy.port"[0m │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[1;4;96mDeleted variables[0m
|
||||
|
||||
|
||||
• manual.http_proxy.address
|
||||
• manual.http_proxy.port
|
||||
• manual.use_for_https
|
||||
• manual.https_proxy.address
|
||||
• manual.https_proxy.port
|
||||
|
||||
|
|
@ -1,222 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"https_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.https_proxy",
|
||||
"name": "https_proxy",
|
||||
"description": "HTTPS Proxy",
|
||||
"properties": [],
|
||||
"mode": "standard"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.https_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTPS address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.https_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTPS Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;92mHTTPS Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.https_proxy
|
||||
[34m▌ [0m[1;7m standard [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
[1;4;96mNew variables[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,141 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[1;4;96mDeleted variables[0m
|
||||
|
||||
|
||||
• manual.https_proxy.address
|
||||
• manual.https_proxy.port
|
||||
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"https_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.https_proxy",
|
||||
"name": "https_proxy",
|
||||
"description": "HTTPS Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" has the value \"true\"",
|
||||
"path": {
|
||||
"path": "manual.use_for_https"
|
||||
},
|
||||
"description": "Also use this proxy for HTTPS"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "standard"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.https_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTPS address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.https_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTPS Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;92mHTTPS Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.https_proxy
|
||||
[34m▌ [0m[1;7m standard [0m [1;7m [0m[1;3;7mhidden[0m[1;7m [0m
|
||||
[34m▌ [0m[1mHidden[0m: when the variable [32m"manual.use_for_https"[0m has the value [32m"true"[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
[1;4;96mNew variables[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.https_proxy.address[0m │ HTTPS address. │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.https_proxy.port[0m │ HTTPS Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,267 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"{{ identifier }}_proxy": {
|
||||
"type": "dynamic",
|
||||
"informations": {
|
||||
"path": "manual.{{ identifier }}_proxy",
|
||||
"name": "{{ identifier }}_proxy",
|
||||
"description": "{{ identifier }} Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" has the value \"true\"",
|
||||
"path": {
|
||||
"path": "manual.use_for_https"
|
||||
},
|
||||
"description": "Also use this proxy for HTTPS"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"help": [
|
||||
"This family builds families dynamically"
|
||||
],
|
||||
"identifier": [
|
||||
"HTTPS",
|
||||
"SOCKS"
|
||||
]
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.{{ identifier }}_proxy.address",
|
||||
"name": "address",
|
||||
"description": "{{ identifier }} address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.{{ identifier }}_proxy.port",
|
||||
"name": "port",
|
||||
"description": "{{ identifier }} port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;3;4;92mHTTPS[0m[1;4;92m Proxy or [0m[1;3;4;92mSOCKS[0m[1;4;92m Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0mThis family builds families dynamically.
|
||||
[34m▌ [0m[1mPath[0m:
|
||||
[34m▌ [0m • manual.[3mhttps[0m_proxy
|
||||
[34m▌ [0m • manual.[3msocks[0m_proxy
|
||||
[34m▌ [0m[1;7m standard [0m [1;7m [0m[1;3;7mhidden[0m[1;7m [0m
|
||||
[34m▌ [0m[1mHidden[0m: when the variable [32m"manual.use_for_https"[0m has the value [32m"true"[0m
|
||||
[34m▌ [0m[1mIdentifiers[0m:
|
||||
[34m▌ [0m • HTTPS
|
||||
[34m▌ [0m • SOCKS
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.address[0m │ [3mHTTPS[0m or [3mSOCKS[0m address. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.address[0m │ [1mValidators[0m: │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.port[0m │ [3mHTTPS[0m or [3mSOCKS[0m port. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.port[0m │ [1mValidators[0m: │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
[1;4;96mNew variables[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.address[0m │ [3mHTTPS[0m or [3mSOCKS[0m address. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.address[0m │ [1mValidators[0m: │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.port[0m │ [3mHTTPS[0m or [3mSOCKS[0m port. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.port[0m │ [1mValidators[0m: │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
[1;4;96mDeleted variables[0m
|
||||
|
||||
|
||||
• manual.https_proxy.address
|
||||
• manual.https_proxy.port
|
||||
|
||||
|
|
@ -1,306 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"{{ identifier }}_proxy": {
|
||||
"type": "dynamic",
|
||||
"informations": {
|
||||
"path": "manual.{{ identifier }}_proxy",
|
||||
"name": "{{ identifier }}_proxy",
|
||||
"description": "{{ identifier }} Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" has the value \"true\"",
|
||||
"path": {
|
||||
"path": "manual.use_for_https"
|
||||
},
|
||||
"description": "Also use this proxy for HTTPS"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"help": [
|
||||
"This family builds families dynamically"
|
||||
],
|
||||
"identifier": [
|
||||
"HTTPS",
|
||||
"SOCKS"
|
||||
]
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.{{ identifier }}_proxy.address",
|
||||
"name": "address",
|
||||
"description": "{{ identifier }} address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.{{ identifier }}_proxy.port",
|
||||
"name": "port",
|
||||
"description": "{{ identifier }} port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"path": "manual.{{ identifier }}_proxy.version",
|
||||
"name": "version",
|
||||
"description": "SOCKS host version used by proxy.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
},
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": "when the identifier is \"HTTPS\""
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "v5"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"v4",
|
||||
"v5"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;3;4;92mHTTPS[0m[1;4;92m Proxy or [0m[1;3;4;92mSOCKS[0m[1;4;92m Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0mThis family builds families dynamically.
|
||||
[34m▌ [0m[1mPath[0m:
|
||||
[34m▌ [0m • manual.[3mhttps[0m_proxy
|
||||
[34m▌ [0m • manual.[3msocks[0m_proxy
|
||||
[34m▌ [0m[1;7m standard [0m [1;7m [0m[1;3;7mhidden[0m[1;7m [0m
|
||||
[34m▌ [0m[1mHidden[0m: when the variable [32m"manual.use_for_https"[0m has the value [32m"true"[0m
|
||||
[34m▌ [0m[1mIdentifiers[0m:
|
||||
[34m▌ [0m • HTTPS
|
||||
[34m▌ [0m • SOCKS
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.address[0m │ [3mHTTPS[0m or [3mSOCKS[0m address. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.address[0m │ [1mValidators[0m: │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.port[0m │ [3mHTTPS[0m or [3mSOCKS[0m port. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.port[0m │ [1mValidators[0m: │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.version[0m │ SOCKS host version used by proxy. │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;3;7mdisabled[0m[1;7m [0m │ • v4 │
|
||||
│ │ • v5 [1m← (default)[0m │
|
||||
│ │ [1mDisabled[0m: when the identifier is │
|
||||
│ │ "HTTPS" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
[1;4;96mNew variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.version[0m │ SOCKS host version used by proxy. │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;3;7mdisabled[0m[1;7m [0m │ • v4 │
|
||||
│ │ • v5 [1m← (default)[0m │
|
||||
│ │ [1mDisabled[0m: when the identifier is │
|
||||
│ │ "HTTPS" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -1,300 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"{{ identifier }}_proxy": {
|
||||
"type": "dynamic",
|
||||
"informations": {
|
||||
"path": "manual.{{ identifier }}_proxy",
|
||||
"name": "{{ identifier }}_proxy",
|
||||
"description": "{{ identifier }} Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": "depends on a calculation"
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"help": [
|
||||
"This family builds families dynamically"
|
||||
],
|
||||
"identifier": [
|
||||
"HTTPS",
|
||||
"SOCKS"
|
||||
]
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.{{ identifier }}_proxy.address",
|
||||
"name": "address",
|
||||
"description": "{{ identifier }} address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.{{ identifier }}_proxy.port",
|
||||
"name": "port",
|
||||
"description": "{{ identifier }} port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"path": "manual.{{ identifier }}_proxy.version",
|
||||
"name": "version",
|
||||
"description": "SOCKS host version used by proxy.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
},
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": "when the identifier is \"HTTPS\""
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "v5"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"v4",
|
||||
"v5"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;3;4;92mHTTPS[0m[1;4;92m Proxy or [0m[1;3;4;92mSOCKS[0m[1;4;92m Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0mThis family builds families dynamically.
|
||||
[34m▌ [0m[1mPath[0m:
|
||||
[34m▌ [0m • manual.[3mhttps[0m_proxy
|
||||
[34m▌ [0m • manual.[3msocks[0m_proxy
|
||||
[34m▌ [0m[1;7m standard [0m [1;7m [0m[1;3;7mhidden[0m[1;7m [0m
|
||||
[34m▌ [0m[1mHidden[0m: depends on a calculation
|
||||
[34m▌ [0m[1mIdentifiers[0m:
|
||||
[34m▌ [0m • HTTPS
|
||||
[34m▌ [0m • SOCKS
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.address[0m │ [3mHTTPS[0m or [3mSOCKS[0m address. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.address[0m │ [1mValidators[0m: │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.port[0m │ [3mHTTPS[0m or [3mSOCKS[0m port. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.port[0m │ [1mValidators[0m: │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.version[0m │ SOCKS host version used by proxy. │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;3;7mdisabled[0m[1;7m [0m │ • v4 │
|
||||
│ │ • v5 [1m← (default)[0m │
|
||||
│ │ [1mDisabled[0m: when the identifier is │
|
||||
│ │ "HTTPS" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,308 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"{{ identifier }}_proxy": {
|
||||
"type": "dynamic",
|
||||
"informations": {
|
||||
"path": "manual.{{ identifier }}_proxy",
|
||||
"name": "{{ identifier }}_proxy",
|
||||
"description": "{{ identifier }} Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"description": "in HTTPS case if \"{0}\" is set to \"true\"",
|
||||
"variables": [
|
||||
{
|
||||
"path": "manual.use_for_https",
|
||||
"description": "Also use this proxy for HTTPS"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"help": [
|
||||
"This family builds families dynamically"
|
||||
],
|
||||
"identifier": [
|
||||
"HTTPS",
|
||||
"SOCKS"
|
||||
]
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.{{ identifier }}_proxy.address",
|
||||
"name": "address",
|
||||
"description": "{{ identifier }} address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.{{ identifier }}_proxy.port",
|
||||
"name": "port",
|
||||
"description": "{{ identifier }} port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"path": "manual.{{ identifier }}_proxy.version",
|
||||
"name": "version",
|
||||
"description": "SOCKS host version used by proxy.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
},
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": "when the identifier is \"HTTPS\""
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "v5"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"v4",
|
||||
"v5"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mproxy_mode[0m │ Configure Proxy Access to the │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m │ Internet. │
|
||||
│ │ [1mChoices[0m: │
|
||||
│ │ • No proxy [1m← (default)[0m │
|
||||
│ │ • Auto-detect proxy settings for │
|
||||
│ │ this network │
|
||||
│ │ • Use system proxy settings │
|
||||
│ │ • Manual proxy configuration │
|
||||
│ │ • Automatic proxy configuration URL │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;4;96mManual proxy configuration[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual
|
||||
[34m▌ [0m[1;7m basic [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m
|
||||
[34m▌ [0m[1mDisabled[0m: when the variable [32m"proxy_mode"[0m hasn't the value [32m"Manual proxy [0m
|
||||
[32mconfiguration"[0m
|
||||
|
||||
[1;4;92mHTTP Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0m[1mPath[0m: manual.http_proxy
|
||||
[34m▌ [0m[1;7m basic [0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.http_proxy.address[0m │ HTTP address. │
|
||||
│ [1;7m domainname [0m [1;7m basic [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.http_proxy.port[0m │ HTTP Port. │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mValidators[0m: │
|
||||
│ │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: 8080 │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.use_for_https[0m │ Also use this proxy for HTTPS. │
|
||||
│ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m │ [1mDefault[0m: true │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
[1;3;4;92mHTTPS[0m[1;4;92m Proxy or [0m[1;3;4;92mSOCKS[0m[1;4;92m Proxy[0m
|
||||
|
||||
[34m▌ [0m[1;34m🛈 Informations[0m
|
||||
[34m▌ [0m
|
||||
[34m▌ [0mThis family builds families dynamically.
|
||||
[34m▌ [0m[1mPath[0m:
|
||||
[34m▌ [0m • manual.[3mhttps[0m_proxy
|
||||
[34m▌ [0m • manual.[3msocks[0m_proxy
|
||||
[34m▌ [0m[1;7m standard [0m [1;7m [0m[1;3;7mhidden[0m[1;7m [0m
|
||||
[34m▌ [0m[1mHidden[0m: in HTTPS case if [32m"manual.use_for_https"[0m is set to [32m"true"[0m
|
||||
[34m▌ [0m[1mIdentifiers[0m:
|
||||
[34m▌ [0m • HTTPS
|
||||
[34m▌ [0m • SOCKS
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.address[0m │ [3mHTTPS[0m or [3mSOCKS[0m address. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.address[0m │ [1mValidators[0m: │
|
||||
│ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m │ • type domainname │
|
||||
│ │ • the domain name can be an IP │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.address" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3mhttps[0m[1m_proxy.port[0m │ [3mHTTPS[0m or [3mSOCKS[0m port. │
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.port[0m │ [1mValidators[0m: │
|
||||
│ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m │ • well-known ports (1 to 1023) are │
|
||||
│ │ allowed │
|
||||
│ │ • registred ports (1024 to 49151) │
|
||||
│ │ are allowed │
|
||||
│ │ • private ports (greater than 49152) │
|
||||
│ │ are allowed │
|
||||
│ │ [1mDefault[0m: the value of the variable │
|
||||
│ │ "manual.http_proxy.port" │
|
||||
├───────────────────────────────────────┼──────────────────────────────────────┤
|
||||
│ [1mmanual.[0m[1;3msocks[0m[1m_proxy.version[0m │ SOCKS host version used by proxy. │
|
||||
│ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m │ [1mChoices[0m: │
|
||||
│ [1;3;7mdisabled[0m[1;7m [0m │ • v4 │
|
||||
│ │ • v5 [1m← (default)[0m │
|
||||
│ │ [1mDisabled[0m: when the identifier is │
|
||||
│ │ "HTTPS" │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
||||
|
|
@ -1,308 +0,0 @@
|
|||
{
|
||||
"proxy_mode": {
|
||||
"path": "proxy_mode",
|
||||
"name": "proxy_mode",
|
||||
"description": "Configure Proxy Access to the Internet.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "No proxy"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"No proxy",
|
||||
"Auto-detect proxy settings for this network",
|
||||
"Use system proxy settings",
|
||||
"Manual proxy configuration",
|
||||
"Automatic proxy configuration URL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual",
|
||||
"name": "manual",
|
||||
"description": "Manual proxy configuration",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"message": "when the variable \"{0}\" hasn't the value \"Manual proxy configuration\"",
|
||||
"path": {
|
||||
"path": "proxy_mode"
|
||||
},
|
||||
"description": "Configure Proxy Access to the Internet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"http_proxy": {
|
||||
"type": "family",
|
||||
"informations": {
|
||||
"path": "manual.http_proxy",
|
||||
"name": "http_proxy",
|
||||
"description": "HTTP Proxy",
|
||||
"properties": [],
|
||||
"mode": "basic"
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"name": "address",
|
||||
"description": "HTTP address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "basic",
|
||||
"type": "variable",
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"name": "port",
|
||||
"description": "HTTP Port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "8080"
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_for_https": {
|
||||
"path": "manual.use_for_https",
|
||||
"name": "use_for_https",
|
||||
"description": "Also use this proxy for HTTPS.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": true
|
||||
},
|
||||
"variable_type": "boolean"
|
||||
},
|
||||
"{{ identifier }}_proxy": {
|
||||
"type": "dynamic",
|
||||
"informations": {
|
||||
"path": "manual.{{ identifier }}_proxy",
|
||||
"name": "{{ identifier }}_proxy",
|
||||
"description": "{{ identifier }} Proxy",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "hidden",
|
||||
"ori_name": "hidden",
|
||||
"access_control": true,
|
||||
"annotation": {
|
||||
"description": "in HTTPS case if \"{0}\" is set to \"true\"",
|
||||
"variables": [
|
||||
{
|
||||
"path": "manual.use_for_https",
|
||||
"description": "Also use this proxy for HTTPS"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"help": [
|
||||
"This family builds families dynamically"
|
||||
],
|
||||
"identifier": [
|
||||
"HTTPS",
|
||||
"SOCKS"
|
||||
]
|
||||
},
|
||||
"children": {
|
||||
"address": {
|
||||
"path": "manual.{{ identifier }}_proxy.address",
|
||||
"name": "address",
|
||||
"description": "{{ identifier }} address.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.address",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP address"
|
||||
}
|
||||
},
|
||||
"variable_type": "domainname",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"type domainname",
|
||||
"the domain name can be an IP"
|
||||
]
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"path": "manual.{{ identifier }}_proxy.port",
|
||||
"name": "port",
|
||||
"description": "{{ identifier }} port.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"HTTPS"
|
||||
],
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": {
|
||||
"message": "the value of the variable \"{0}\"",
|
||||
"path": {
|
||||
"path": "manual.http_proxy.port",
|
||||
"type": "variable"
|
||||
},
|
||||
"description": "HTTP Port"
|
||||
}
|
||||
},
|
||||
"variable_type": "port",
|
||||
"validators": {
|
||||
"name": "Validators",
|
||||
"values": [
|
||||
"well-known ports (1 to 1023) are allowed",
|
||||
"registred ports (1024 to 49151) are allowed",
|
||||
"private ports (greater than 49152) are allowed"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"path": "manual.{{ identifier }}_proxy.version",
|
||||
"name": "version",
|
||||
"description": "SOCKS host version used by proxy.",
|
||||
"properties": [
|
||||
{
|
||||
"type": "property",
|
||||
"name": "mandatory",
|
||||
"ori_name": "mandatory",
|
||||
"access_control": false
|
||||
},
|
||||
{
|
||||
"type": "property",
|
||||
"name": "disabled",
|
||||
"ori_name": "disabled",
|
||||
"access_control": true,
|
||||
"annotation": "when the identifier is \"HTTPS\""
|
||||
}
|
||||
],
|
||||
"mode": "standard",
|
||||
"identifiers": [
|
||||
[
|
||||
"SOCKS"
|
||||
]
|
||||
],
|
||||
"type": "variable",
|
||||
"default": {
|
||||
"name": "Default",
|
||||
"values": "v5"
|
||||
},
|
||||
"variable_type": "choice",
|
||||
"choices": {
|
||||
"name": "Choices",
|
||||
"values": [
|
||||
"v4",
|
||||
"v5"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue