yml: Move json schema from python dict to standalone json file

- Easier to reference as schema for IDEs
- Can be added to schemastore.org

Signed-off-by: ciarancourtney <ciaran.courtney@activeenergy.ie>
[Jan: rebased, merged in schema installation]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
ciarancourtney
2021-10-04 18:41:37 +02:00
committed by Jan Kiszka
parent 6630780935
commit 460699685e
3 changed files with 232 additions and 207 deletions

View File

@@ -26,210 +26,10 @@
__license__ = 'MIT'
__copyright__ = 'Copyright (c) Siemens AG, 2017-2018'
CONFIGSCHEMA = {
'type': 'object',
'required': ['header'],
'additionalProperties': False,
'properties': {
'header': {
'type': 'object',
'required': ['version'],
'additionalProperties': False,
'properties': {
'version': {
'oneOf': [
{
'type': 'string',
'enum': ['0.10'],
},
{
'type': 'integer',
},
],
},
'includes': {
'type': 'array',
'items': {
'oneOf': [
{
'type': 'string',
},
{
'type': 'object',
'required': ['repo', 'file'],
'additionalProperties': False,
'properties': {
'repo': {
'type': 'string',
},
'file': {
'type': 'string'
},
},
},
],
},
},
},
},
'build_system': {
'type': 'string',
'enum': ['openembedded', 'oe', 'isar'],
},
'defaults': {
'type': 'object',
'additionalProperties': False,
'properties': {
'repos': {
'type': 'object',
'additionalProperties': False,
'properties': {
'refspec': {
'type': 'string',
},
'patches': {
'type': 'object',
'additionalProperties': False,
'properties': {
'repo': {
'type': 'string',
},
},
},
},
},
},
},
'machine': {
'type': 'string',
},
'distro': {
'type': 'string',
},
'env': {
'type': 'object',
'additionalProperties': {
'type': 'string',
},
},
'target': {
'oneOf': [
{
'type': 'string',
},
{
'type': 'array',
'items': {
'type': 'string',
},
},
],
},
'task': {
'type': 'string',
},
'repos': {
'type': 'object',
'additionalProperties': {
'oneOf': [
{
'type': 'object',
'additionalProperties': False,
'properties': {
'name': {
'type': 'string',
},
'url': {
'type': 'string',
},
'type': {
'type': 'string',
},
'refspec': {
'type': 'string',
},
'path': {
'type': 'string',
},
'layers': {
'type': 'object',
'additionalProperties': {
'oneOf': [
{
'type': 'null',
},
{
'type': 'integer',
},
{
'type': 'boolean',
},
{
'type': 'string',
},
],
},
},
'patches': {
'type': 'object',
'additionalProperties': {
'oneOf': [
{
'type': 'object',
'additionalProperties': False,
'required': ['path'],
'properties': {
'repo': {
'type': 'string'
},
'path': {
'type': 'string'
},
},
},
{
'type': 'null'
},
],
},
},
},
},
{
'type': 'null',
},
],
},
},
'bblayers_conf_header': {
'type': 'object',
'additionalProperties': {
'type': 'string',
},
},
'local_conf_header': {
'type': 'object',
'additionalProperties': {
'type': 'string',
},
},
'proxy_config': {
'type': 'object',
'additionalProperties': False,
'properties': {
'http_proxy': {
'type': 'string',
},
'https_proxy': {
'type': 'string',
},
'ftp_proxy': {
'type': 'string',
},
'no_proxy': {
'type': 'string',
},
},
},
},
}
import json
import os
cwd = os.path.dirname(os.path.realpath(__file__))
with open(os.path.join(cwd, 'schema-kas.json'), 'r') as f:
CONFIGSCHEMA = json.load(f)