kopia lustrzana https://github.com/espressif/esp-idf
291 wiersze
9.7 KiB
JSON
291 wiersze
9.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://github.com/espressif/esp-idf/blob/master/tools/tools-schema.json",
|
|
"type": "object",
|
|
"properties": {
|
|
"version": {
|
|
"type": "integer",
|
|
"description": "Metadata file version"
|
|
},
|
|
"tools": {
|
|
"type": "array",
|
|
"description": "List of tools",
|
|
"items": {
|
|
"$ref": "#/definitions/toolInfo"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"version",
|
|
"tools"
|
|
],
|
|
"definitions": {
|
|
"toolInfo": {
|
|
"type": "object",
|
|
"description": "Information about one tool",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name" : {
|
|
"description": "Tool name (used as a directory name)",
|
|
"type": "string"
|
|
},
|
|
"description" : {
|
|
"description": "A short (one sentence) description of the tool.",
|
|
"type": "string"
|
|
},
|
|
"export_paths": {
|
|
"$ref": "#/definitions/exportPaths"
|
|
},
|
|
"export_vars": {
|
|
"$ref": "#/definitions/envVars",
|
|
"description": "Some variable expansions are done on the values. 1) ${TOOL_PATH} is replaced with the directory where the tool is installed."
|
|
},
|
|
"info_url": {
|
|
"description": "URL of the page with information about the tool",
|
|
"type": "string"
|
|
},
|
|
"install": {
|
|
"$ref": "#/definitions/installRequirementInfo",
|
|
"description": "If 'always', the tool will be installed by default. If 'on_request', tool will be installed when specifically requested. If 'never', tool will not be considered for installation."
|
|
},
|
|
"is_executable": {
|
|
"description": "If false - tool does not contain executables. The version will not be checked but export_vars applied.",
|
|
"type": "boolean"
|
|
},
|
|
"license": {
|
|
"description": "License name. Use SPDX license identifier if it exists, short name of the license otherwise.",
|
|
"type": "string"
|
|
},
|
|
"version_cmd": {
|
|
"$ref": "#/definitions/arrayOfStrings",
|
|
"description": "Command to be executed (along with any extra arguments). The executable be present in one of the export_paths."
|
|
},
|
|
"supported_targets": {
|
|
"$ref": "#/definitions/arrayOfStrings",
|
|
"description": "Array of esp_targets that this tool is needed for."
|
|
},
|
|
"version_regex": {
|
|
"description": "Regex which is to be applied to version_cmd output to extract the version. By default, the version will be the first capture group of the expression. If version_regex_replace is specified, version will be obtained by doing a substitution using version_regex_replace instead.",
|
|
"$ref": "#/definitions/regex"
|
|
},
|
|
"version_regex_replace": {
|
|
"description": "If given, this will be used as substitute expression for the regex defined in version_regex, to obtain the version string. Not specifying this is equivalent to setting it to '\\1' (i.e. return the first capture group).",
|
|
"type": "string"
|
|
},
|
|
"strip_container_dirs": {
|
|
"type": "integer",
|
|
"description": "If specified, this number of top directory levels will removed when extracting. E.g. if strip_container_dirs=2, archive path a/b/c/d.txt will be extracted as c/d.txt"
|
|
},
|
|
"versions": {
|
|
"type": "array",
|
|
"description": "List of versions",
|
|
"items": {
|
|
"$ref": "#/definitions/versionInfo"
|
|
}
|
|
},
|
|
"platform_overrides": {
|
|
"type": "array",
|
|
"description": "List of platform-specific overrides",
|
|
"items": {
|
|
"$ref": "#/definitions/platformOverrideInfo"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"export_paths",
|
|
"version_cmd",
|
|
"version_regex",
|
|
"versions",
|
|
"install",
|
|
"info_url",
|
|
"license"
|
|
]
|
|
},
|
|
"arrayOfStrings": {
|
|
"description": "Array of strings. Used to represent paths (split into components) and command lines (split into arguments)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"exportPaths": {
|
|
"description": "Array of paths to be exported (added to PATH). Each item in the array is relative to the directory where the tool will be installed.",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/arrayOfStrings"
|
|
}
|
|
},
|
|
"envVars": {
|
|
"description": "Collection of environment variables. Keys and values are the environment variable names and values, respectively.",
|
|
"type": "object",
|
|
"patternProperties": {
|
|
"^([A-Z_0-9]+)+$": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"regex": {
|
|
"description": "A regular expression",
|
|
"type": "string"
|
|
},
|
|
"versionInfo": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name" : {
|
|
"description": "Version name (used as a directory name)",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "Determines whether the version is recommended/supported/deprecated",
|
|
"type": "string",
|
|
"enum": ["recommended", "supported", "deprecated"]
|
|
},
|
|
"linux-i686": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"linux-amd64": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"linux-armel": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"linux-arm64": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"linux-armhf": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"macos": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"macos-arm64": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"win32": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"win64": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
},
|
|
"any": {
|
|
"$ref": "#/definitions/platformDownloadInfo"
|
|
}
|
|
}
|
|
},
|
|
"platformDownloadInfo": {
|
|
"description": "Information about download artifact for one platform",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"sha256": {
|
|
"type": "string",
|
|
"description": "SHA256 sum of the file"
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"description": "Size of the file, in bytes"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "Download URL"
|
|
},
|
|
"rename_dist": {
|
|
"type": "string",
|
|
"description": "Filename under which the archive should be downloaded"
|
|
}
|
|
},
|
|
"required": [
|
|
"sha256",
|
|
"url",
|
|
"size"
|
|
]
|
|
},
|
|
"installRequirementInfo": {
|
|
"description": "If 'always', the tool will be installed by default. If 'on_request', tool will be installed when specifically requested. If 'never', tool will not be considered for installation.",
|
|
"type": "string",
|
|
"enum": ["always", "on_request", "never"]
|
|
},
|
|
"platformOverrideInfo": {
|
|
"description": "Platform-specific values which override the defaults",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"platforms": {
|
|
"description": "List of platforms to which this override applies",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["linux-i686", "linux-amd64", "linux-armel", "linux-armhf", "linux-arm64", "macos", "macos-arm64", "win32", "win64"]
|
|
}
|
|
},
|
|
"export_paths": {
|
|
"description": "Platform-specific replacement for toolInfo/export_paths",
|
|
"$ref": "#/definitions/exportPaths"
|
|
},
|
|
"export_vars": {
|
|
"description": "Platform-specific replacement for toolInfo/export_vars",
|
|
"$ref": "#/definitions/envVars"
|
|
},
|
|
"install": {
|
|
"description": "Platform-specific replacement for toolInfo/install",
|
|
"$ref": "#/definitions/installRequirementInfo"
|
|
},
|
|
"version_cmd": {
|
|
"description": "Platform-specific replacement for toolInfo/version_cmd",
|
|
"$ref": "#/definitions/arrayOfStrings"
|
|
},
|
|
"supported_targets": {
|
|
"description": "Platform-specific replacement for toolInfo/supported_targets",
|
|
"$ref": "#/definitions/arrayOfStrings"
|
|
},
|
|
"version_regex": {
|
|
"description": "Platform-specific replacement for toolInfo/version_regex",
|
|
"$ref": "#/definitions/regex"
|
|
},
|
|
"version_regex_replace": {
|
|
"description": "Platform-specific replacement for toolInfo/version_regex_replace",
|
|
"type": "string"
|
|
},
|
|
"strip_container_dirs": {
|
|
"type": "string",
|
|
"description": "Platform-specific replacement for toolInfo/strip_container_dirs"
|
|
}
|
|
},
|
|
"required": ["platforms"]
|
|
}
|
|
},
|
|
"$comment": "Condition verifying that version 1 of tools.json must not contain 'rename_dist' keyword in any of #/definitions/versionInfo properties.",
|
|
"if": {
|
|
"properties": {
|
|
"version": {
|
|
"const": 1
|
|
}
|
|
}
|
|
},
|
|
"then": {
|
|
"properties": {
|
|
"tools": {
|
|
"items": {
|
|
"properties": {
|
|
"versions": {
|
|
"items": {
|
|
"additionalProperties": {
|
|
"not": {
|
|
"type": "object",
|
|
"required": [
|
|
"rename_dist"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|