Compare commits

...

20 commits

Author SHA1 Message Date
acfca4f6a5 bump: version 0.2.0a6 → 0.2.0a7 2025-04-30 09:07:32 +02:00
64acbc2dbd fix: update tests 2025-04-27 10:19:57 +02:00
6598aff220 bump: version 0.2.0a5 → 0.2.0a6 2025-04-09 21:30:28 +02:00
a7c35b2de9 fix: version 2025-04-09 21:30:21 +02:00
8e8989c858 bump: version 0.2.0a4 → 0.2.0a5 2025-04-09 08:48:39 +02:00
f8bf91fd7a fix: better error message 2025-04-09 08:48:35 +02:00
d2c79690e4 bump: version 0.2.0a3 → 0.2.0a4 2025-04-01 22:15:07 +02:00
076fb40bdd fix: update tests 2025-04-01 21:59:47 +02:00
d2a8a601d8 bump: version 0.2.0a2 → 0.2.0a3 2025-03-30 18:58:31 +02:00
39358a74b5 fix: i18n 2025-03-30 18:58:27 +02:00
bc89583fe4 bump: version 0.2.0a1 → 0.2.0a2 2025-03-30 18:48:09 +02:00
634fdb6a3d fix: update tests 2025-03-30 18:47:16 +02:00
01a86922bd fix: update tests, some errors are now in warnings level 2025-03-02 17:45:56 +01:00
fa039c1743 bump: version 0.2.0a0 → 0.2.0a1 2025-02-10 09:23:51 +01:00
d4f81987e6 feat: add new parameter yaml.file_with_secrets 2025-02-10 09:23:33 +01:00
b0fdef7a52 fix: update tests 2025-02-04 07:45:38 +01:00
586f3a3e91 bump: version 0.1.1a0 → 0.2.0a0 2024-12-11 21:40:09 +01:00
23eadd9269 feat: rename file to yaml 2024-12-11 21:37:54 +01:00
412831278d bump: version 0.1.0 → 0.1.1a0 2024-11-25 10:15:51 +01:00
46db478687 fix: prepare ansible user data 2024-11-25 10:13:58 +01:00
1142 changed files with 9924 additions and 3800 deletions

View file

@ -1,3 +1,62 @@
## 0.2.0a7 (2025-04-30)
### Fix
- update tests
## 0.2.0a6 (2025-04-09)
### Fix
- version
## 0.2.0a5 (2025-04-09)
### Fix
- better error message
## 0.2.0a4 (2025-04-01)
### Fix
- update tests
## 0.2.0a3 (2025-03-30)
### Fix
- i18n
## 0.2.0a2 (2025-03-30)
### Fix
- update tests
- update tests, some errors are now in warnings level
## 0.2.0a1 (2025-02-10)
### Feat
- add new parameter yaml.file_with_secrets
### Fix
- update tests
## 0.2.0a0 (2024-12-11)
### Feat
- rename file to yaml
### Fix
- prepare ansible user data
## 0.1.0 (2024-11-06)
## 0.1.0rc1 (2024-11-06) ## 0.1.0rc1 (2024-11-06)
### Fix ### Fix

View file

@ -1,2 +1,2 @@
# rougail-user-data # rougail-user-data-file

View file

@ -0,0 +1,47 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2025-04-09 08:34+0200\n"
"PO-Revision-Date: 2025-04-09 08:35+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 3.5\n"
#: src/rougail/user_data_yaml/__init__.py:42
msgid "yaml is not set in step.user_data"
msgstr "\"yaml\" n'est pas défini dans step.user_data"
#: src/rougail/user_data_yaml/__init__.py:62
msgid "cannot load \"{0}\", the root value is not a dict but \"{1}\""
msgstr ""
"ne peut charger \"{0}\", la valeur racine n'est pas une dictionnaire mais "
"\"{1}\""
#: src/rougail/user_data_yaml/__init__.py:85
msgid "the YAML file \"{0}\""
msgstr "le fichier YAML \"{0}\""
#: src/rougail/user_data_yaml/__init__.py:116
msgid "\"{0}\" in {1} has an unknown value"
msgstr "\"{0}\" dans {1} a une valeur inconnue"
#: src/rougail/user_data_yaml/config.py:29
msgid "Configuration rougail-user-data-yaml"
msgstr "Configuration de rougail-user-data-yaml"
#: src/rougail/user_data_yaml/config.py:38
msgid "Filename"
msgstr "Nom du fichier"
#: src/rougail/user_data_yaml/config.py:49
msgid "File that may contain secrets"
msgstr "Le fichier peut contenir des secrets"

View file

@ -1,35 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2024-11-01 12:12+0100\n"
"PO-Revision-Date: 2024-11-01 12:13+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 3.5\n"
#: src/rougail/user_data_file/__init__.py:40
msgid "file is not set in step.user_data"
msgstr "\"file\" n'est pas défini dans step.user_data"
#: src/rougail/user_data_file/__init__.py:58
msgid "cannot load \"{0}\", the root value is not a dict but \"{1}\""
msgstr ""
"ne peut charger \"{0}\", la valeur racine n'est pas une dictionnaire mais "
"\"{1}\""
#: src/rougail/user_data_file/__init__.py:66
msgid "file ({0})"
msgstr "fichier ({0})"
#: src/rougail/user_data_file/__init__.py:88
msgid "\"{0}\" in {1} has an unknown value"
msgstr "\"{0}\" dans {1} a une valeur inconnue"

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-11-01 12:13+0100\n" "POT-Creation-Date: 2025-04-29 23:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,19 +15,31 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: src/rougail/user_data_file/__init__.py:40 #: src/rougail/user_data_yaml/__init__.py:43
msgid "file is not set in step.user_data" msgid "yaml is not set in step.user_data"
msgstr "" msgstr ""
#: src/rougail/user_data_file/__init__.py:58 #: src/rougail/user_data_yaml/__init__.py:63
msgid "cannot load \"{0}\", the root value is not a dict but \"{1}\"" msgid "cannot load \"{0}\", the root value is not a dict but \"{1}\""
msgstr "" msgstr ""
#: src/rougail/user_data_file/__init__.py:66 #: src/rougail/user_data_yaml/__init__.py:86
msgid "file ({0})" msgid "the YAML file \"{0}\""
msgstr "" msgstr ""
#: src/rougail/user_data_file/__init__.py:88 #: src/rougail/user_data_yaml/__init__.py:117
msgid "\"{0}\" in {1} has an unknown value" msgid "\"{0}\" in {1} has an unknown value"
msgstr "" msgstr ""
#: src/rougail/user_data_yaml/config.py:29
msgid "Configuration rougail-user-data-yaml"
msgstr ""
#: src/rougail/user_data_yaml/config.py:38
msgid "Filename"
msgstr ""
#: src/rougail/user_data_yaml/config.py:49
msgid "File that may contain secrets"
msgstr ""

View file

@ -3,11 +3,11 @@ build-backend = "flit_core.buildapi"
requires = ["flit_core >=3.8.0,<4"] requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.user_data_file" name = "rougail.user_data_yaml"
version = "0.1.0" version = "0.2.0a7"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail user_data file" description = "Rougail user_data yaml"
requires-python = ">=3.8" requires-python = ">=3.8"
license = {file = "LICENSE"} license = {file = "LICENSE"}
classifiers = [ classifiers = [
@ -18,6 +18,8 @@ classifiers = [
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Natural Language :: English", "Natural Language :: English",
@ -29,12 +31,16 @@ dependencies = [
] ]
[project.urls] [project.urls]
Home = "https://forge.cloud.silique.fr/stove/rougail-user-data-file" Home = "https://forge.cloud.silique.fr/stove/rougail-user-data-yaml"
[tool.commitizen] [tool.commitizen]
name = "cz_conventional_commits" name = "cz_conventional_commits"
tag_format = "$version" tag_format = "$version"
version_scheme = "pep440" version_scheme = "pep440"
version_provider = "pep621" version_provider = "pep621"
#update_changelog_on_bump = true version_files = [
"src/rougail/user_data_yaml/__version__.py",
"pyproject.toml:version"
]
update_changelog_on_bump = true
changelog_merge_prerelease = true changelog_merge_prerelease = true

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the
@ -15,15 +15,16 @@ details.
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from rougail import RougailConfig
from ruamel.yaml import YAML from ruamel.yaml import YAML
from rougail.error import ExtentionError
from tiramisu.error import ValueOptionError, PropertiesOptionError, LeadershipError from tiramisu.error import ValueOptionError, PropertiesOptionError, LeadershipError
from .i18n import _ from .i18n import _
from .__version__ import __version__
class RougailUserDataFile: class RougailUserDataYaml:
def __init__( def __init__(
self, self,
config, config,
@ -31,17 +32,18 @@ class RougailUserDataFile:
rougailconfig=None, rougailconfig=None,
) -> None: ) -> None:
if rougailconfig is None: if rougailconfig is None:
from rougail import RougailConfig
rougailconfig = RougailConfig rougailconfig = RougailConfig
user_data = rougailconfig["step.user_data"] user_data = rougailconfig["step.user_data"]
if "file" not in user_data: if "yaml" not in user_data:
user_data.append("file") user_data.append("yaml")
rougailconfig["step.user_data"] = user_data rougailconfig["step.user_data"] = user_data
user_data = rougailconfig["step.user_data"] user_data = rougailconfig["step.user_data"]
if "file" not in user_data: if "yaml" not in user_data:
raise Exception(_("file is not set in step.user_data")) raise ExtentionError(_("yaml is not set in step.user_data"))
self.rougailconfig = rougailconfig self.rougailconfig = rougailconfig
self.filenames = self.rougailconfig["file.filename"] self.filenames = self.rougailconfig["yaml.filename"]
self.yaml = YAML() self.file_with_secrets = self.rougailconfig["yaml.file_with_secrets"]
self.config = config self.config = config
self.errors = [] self.errors = []
self.warnings = [] self.warnings = []
@ -49,36 +51,52 @@ class RougailUserDataFile:
def run( def run(
self, self,
) -> None: ) -> None:
self.yaml = YAML()
user_datas = [] user_datas = []
for filename in self.filenames: for idx, filename in enumerate(self.filenames):
with open(filename) as fh_config: file_values = self.open(filename)
file_values = self.yaml.load(fh_config)
if not file_values: if not file_values:
continue continue
values = {}
if not isinstance(file_values, dict): if not isinstance(file_values, dict):
self.errors.append( self.errors.append(
_( _(
'cannot load "{0}", the root value is not a dict but "{1}"' 'cannot load "{0}", the root value is not a dict but "{1}"'
).format(filename, file_values) ).format(filename, file_values)
) )
continue else:
values = {} self.parse(
self.parse( values,
values, "",
"", file_values,
file_values, filename,
filename, )
) if self.file_with_secrets == 'none':
allow_secrets_variables = False
elif self.file_with_secrets == 'first':
allow_secrets_variables = idx == 0
elif self.file_with_secrets == 'last':
if not idx:
last_filenames = len(self.filenames) - 1
allow_secrets_variables = idx == last_filenames
else:
allow_secrets_variables = True
user_datas.append( user_datas.append(
{ {
"source": _("file ({0})").format(filename), "source": _('the YAML file "{0}"').format(filename),
"errors": self.errors, "errors": self.errors,
"warnings": self.warnings, "warnings": self.warnings,
"values": values, "values": values,
'options': {'allow_secrets_variables': allow_secrets_variables,
},
} }
) )
return user_datas return user_datas
def open(self, filename: str) -> dict:
with open(filename) as fh_config:
return self.yaml.load(fh_config)
def parse( def parse(
self, self,
values: dict, values: dict,
@ -113,7 +131,7 @@ class RougailUserDataFile:
values[path] = value values[path] = value
RougailUserData = RougailUserDataFile RougailUserData = RougailUserDataYaml
__all__ = ("RougailUserDataFile",) __all__ = ("RougailUserDataYaml",)

View file

@ -0,0 +1 @@
__version__ = "0.2.0a7"

View file

@ -1,8 +1,8 @@
""" """
Config file for Rougail-user-data Config yaml for Rougail-user-data
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the
@ -17,23 +17,25 @@ details.
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from .i18n import _
def get_rougail_config( def get_rougail_config(
*, *,
backward_compatibility=True, backward_compatibility=True,
) -> dict: ) -> dict:
options = """ options = f"""
file: yaml:
description: Configuration rougail-user-data-file description: {_("Configuration rougail-user-data-yaml")}
disabled: disabled:
type: jinja type: jinja
jinja: | jinja: |
{% if 'file' not in step.user_data %} {{% if 'yaml' not in step.user_data %}}
disabled disabled
{% endif %} {{% endif %}}
filename: filename:
description: Filename with user data description: {_("Filename")}
alternative_name: ff alternative_name: ff
type: unix_filename type: unix_filename
multi: true multi: true
@ -42,9 +44,18 @@ file:
test_existence: True test_existence: True
types: types:
- file - file
file_with_secrets:
description: {_("File that may contain secrets")}
default: all
choices:
- all
- first
- last
- none
""" """
return { return {
"name": "file", "name": "yaml",
"process": "user data", "process": "user data",
"options": options, "options": options,
"level": 50, "level": 50,

View file

@ -1,6 +1,6 @@
"""Internationalisation utilities """Internationalisation utilities
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the
@ -20,7 +20,7 @@ from gettext import translation
from pathlib import Path from pathlib import Path
t = translation( t = translation(
"rougail_user_data_file", str(Path(__file__).parent / "locale"), fallback=True "rougail_user_data_yaml", str(Path(__file__).parent / "locale"), fallback=True
) )
_ = t.gettext _ = t.gettext

View file

@ -0,0 +1,5 @@
{
"dynVal1": {
"var": "string1"
}
}

View file

@ -0,0 +1,10 @@
---
version: '1.1'
var: [] # A suffix variable
"dyn{{ identifier }}":
description: A dynamic family
dynamic:
variable: _.var
var: # A dynamic variable

View file

@ -0,0 +1,5 @@
{
"dynVal1": {
"var": "string1"
}
}

View file

@ -0,0 +1,12 @@
---
version: '1.1'
var: #A suffix variable
mandatory: false
default: []
"dyn{{ identifier }}":
description: A dynamic family
dynamic:
variable: _.var
var: # A dynamic variable

View file

@ -1 +1 @@
{} {}

View file

@ -1 +1 @@
{} {}

View file

@ -1 +1 @@
{} {}

View file

@ -1,2 +1,5 @@
rougail: {
version: string1 "rougail": {
"version": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
version: string1 "rougail": {
"version": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
version: string1 "rougail": {
"version": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
empty: string1 "rougail": {
"empty": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
empty: string1 "rougail": {
"empty": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
empty: string1 "rougail": {
"empty": "string1"
}
}

View file

@ -1,6 +1,10 @@
rougail: {
var1: string1 "rougail": {
var2: "var1": "string1",
- string1 "var2": [
- string2 "string1",
- string3 "string2",
"string3"
]
}
}

View file

@ -1,6 +1,10 @@
rougail: {
var1: string1 "rougail": {
var2: "var1": "string1",
- string1 "var2": [
- string2 "string1",
- string3 "string2",
"string3"
]
}
}

View file

@ -1,9 +1,14 @@
rougail: {
var1: "rougail": {
- string1 "var1": [
- string2 "string1",
- string3 "string2",
var2: "string3"
- string1 ],
- string2 "var2": [
- string3 "string1",
"string2",
"string3"
]
}
}

View file

@ -1,9 +1,14 @@
rougail: {
var1: "rougail": {
- string1 "var1": [
- string2 "string1",
- string3 "string2",
var2: "string3"
- string1 ],
- string2 "var2": [
- string3 "string1",
"string2",
"string3"
]
}
}

View file

@ -1,7 +1,12 @@
rougail: {
var1: "rougail": {
- domain1.lan "var1": [
- domain2.lan "domain1.lan",
var2: "domain2.lan"
- domain1.lan ],
- domain2.lan "var2": [
"domain1.lan",
"domain2.lan"
]
}
}

View file

@ -1,7 +1,12 @@
rougail: {
var1: "rougail": {
- domain1.lan "var1": [
- domain2.lan "domain1.lan",
var2: "domain2.lan"
- domain1.lan ],
- domain2.lan "var2": [
"domain1.lan",
"domain2.lan"
]
}
}

View file

@ -1,4 +1,8 @@
rougail: {
var1: "rougail": {
- domain1.lan "var1": [
- domain2.lan "domain1.lan",
"domain2.lan"
]
}
}

View file

@ -1,2 +1,6 @@
rougail: {
var1: string1 "rougail": {
"var1": "string1",
"var2": "string1"
}
}

View file

@ -1,2 +1,6 @@
rougail: {
var1: string1 "rougail": {
"var1": "string1",
"var2": "string1"
}
}

View file

@ -1,2 +1,6 @@
rougail: {
var1: string1 "rougail": {
"var1": "string1",
"var2": "string1"
}
}

View file

@ -1,3 +1,4 @@
{ {
"rougail.var1": "string1" "rougail.var1": "string1",
"rougail.var2": "string1"
} }

View file

@ -1,3 +1,4 @@
{ {
"rougail.var1": "string1" "rougail.var1": "string1",
"rougail.var2": "string1"
} }

View file

@ -1,2 +1,5 @@
rougail: {
without_type: string1 "rougail": {
"without_type": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
without_type: string1 "rougail": {
"without_type": "string1"
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: true "rougail": {
var2: true "var1": true,
var3: true "var2": true,
var4: true "var3": true,
var5: true "var4": true,
var6: true "var5": true,
"var6": true
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: true "rougail": {
var2: true "var1": true,
var3: true "var2": true,
var4: true "var3": true,
var5: true "var4": true,
var6: true "var5": true,
"var6": true
}
}

View file

@ -1 +1 @@
{} {}

View file

@ -1,2 +1,5 @@
rougail: {
variable: true "rougail": {
"variable": true
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable: true "rougail": {
"variable": true
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: a "rougail": {
var2: a "var1": "a",
var3: a "var2": "a",
var4: "var3": "a",
var5: a "var4": null,
var6: 1 "var5": "a",
"var6": 1
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: a "rougail": {
var2: a "var1": "a",
var3: a "var2": "a",
var4: "var3": "a",
var5: a "var4": null,
var6: 1 "var5": "a",
"var6": 1
}
}

View file

@ -1,3 +1,6 @@
rougail: {
var1: a "rougail": {
var2: a "var1": "a",
"var2": "a"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
var: 0 "rougail": {
"var": 0
}
}

View file

@ -1,2 +1,5 @@
rougail: {
var: 0 "rougail": {
"var": 0
}
}

View file

@ -0,0 +1,6 @@
{
"rougail": {
"var1": "a",
"var2": "a"
}
}

View file

@ -0,0 +1,6 @@
{
"rougail": {
"var1": "a",
"var2": "a"
}
}

View file

@ -0,0 +1,5 @@
{
"rougail": {
"var1": "a"
}
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "a",
"rougail.var2": "a"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "a",
"rougail.var2": "a"
}

View file

@ -1,6 +1,10 @@
rougail: {
var1: "rougail": {
- string1 "var1": [
- string2 "string1",
- string3 "string2",
var2: string1 "string3"
],
"var2": "string1"
}
}

View file

@ -1,6 +1,10 @@
rougail: {
var1: "rougail": {
- string1 "var1": [
- string2 "string1",
- string3 "string2",
var2: string1 "string3"
],
"var2": "string1"
}
}

View file

@ -0,0 +1,11 @@
{
"rougail": {
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"var3": "string1"
}
}

View file

@ -0,0 +1,11 @@
{
"rougail": {
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"var3": "string1"
}
}

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"string1",
"string2",
"string3"
],
"rougail.var2": "string1",
"rougail.var3": "string1"
}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"a",
"b",
"c"
],
"rougail.var2": "a",
"rougail.var3": "a"
}

View file

@ -0,0 +1,13 @@
{
"rougail": {
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"family": {
"var3": "string1"
}
}
}

View file

@ -0,0 +1,13 @@
{
"rougail": {
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"family": {
"var3": "string1"
}
}
}

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"string1",
"string2",
"string3"
],
"rougail.var2": "string1",
"rougail.family.var3": "string1"
}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"a",
"b",
"c"
],
"rougail.var2": "a",
"rougail.family.var3": "a"
}

View file

@ -1,3 +1,6 @@
rougail: {
custom1: string1 "rougail": {
custom2: string1 "custom1": "string1",
"custom2": "string1"
}
}

View file

@ -1,3 +1,6 @@
rougail: {
custom1: string1 "rougail": {
custom2: string1 "custom1": "string1",
"custom2": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
custom1: string1 "rougail": {
"custom1": "string1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable: domain1.lan "rougail": {
"variable": "domain1.lan"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable: domain1.lan "rougail": {
"variable": "domain1.lan"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable: domain1.lan "rougail": {
"variable": "domain1.lan"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable: domain1.lan "rougail": {
"variable": "domain1.lan"
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: 1.1 "rougail": {
var2: 1.1 "var1": 1.1,
var3: 1.1 "var2": 1.1,
var4: 1.1 "var3": 1.1,
var5: 1.1 "var4": 1.1,
var6: 1.1 "var5": 1.1,
"var6": 1.1
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: 1.1 "rougail": {
var2: 1.1 "var1": 1.1,
var3: 1.1 "var2": 1.1,
var4: 1.1 "var3": 1.1,
var5: 1.1 "var4": 1.1,
var6: 1.1 "var5": 1.1,
"var6": 1.1
}
}

View file

@ -1 +1 @@
{} {}

View file

@ -1,7 +1,10 @@
rougail: {
var1: 1 "rougail": {
var2: 1 "var1": 1,
var3: 1 "var2": 1,
var4: 1 "var3": 1,
var5: 1 "var4": 1,
var6: 1 "var5": 1,
"var6": 1
}
}

View file

@ -1,7 +1,10 @@
rougail: {
var1: 1 "rougail": {
var2: 1 "var1": 1,
var3: 1 "var2": 1,
var4: 1 "var3": 1,
var5: 1 "var4": 1,
var6: 1 "var5": 1,
"var6": 1
}
}

View file

@ -1 +1 @@
{} {}

View file

@ -1,4 +1,7 @@
rougail: {
variable1: '80' "rougail": {
variable2: '80' "variable1": "80",
variable3: '80' "variable2": "80",
"variable3": "80"
}
}

View file

@ -1,4 +1,7 @@
rougail: {
variable1: '80' "rougail": {
variable2: '80' "variable1": "80",
variable3: '80' "variable2": "80",
"variable3": "80"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
variable1: '80' "rougail": {
"variable1": "80"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
var: '#b1b1b1' "rougail": {
"var": "#b1b1b1"
}
}

View file

@ -1,2 +1,5 @@
rougail: {
var: '#b1b1b1' "rougail": {
"var": "#b1b1b1"
}
}

View file

@ -1 +1 @@
{} {}

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