Files
Scoop/schema.json
Richard Kuhnt 1feda7a088 [WIP] Validate manifests against JSON Schema in CI Tests (#1331)
* Add suggest and psmodule to schema.json
* Fix required fields in schema.json
* Improve url validation in schema.json
* Add validator.exe as a single file validation tool
* Add Scoop.Validator Lib for use in Manifest-Tests
* Add buildscript for Scoop.Validator and validator.exe
* Exclude .dll and packages folder from Project-Tests
* Validate manifests against JSON Schema in CI Tests
* Complete JSON Schema Validation
* Dlls shouldn't be treated as text
2017-02-17 19:00:56 +01:00

455 lines
15 KiB
JSON

{
"$id": "http://scoop.sh/draft/schema#",
"$schema": "http://scoop.sh/draft/schema#",
"additionalProperties": false,
"definitions": {
"architecture": {
"additionalProperties": false,
"properties": {
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
},
"installer": {
"$ref": "#/definitions/installer"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings",
"description": "Deprecated"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
}
},
"type": "object"
},
"arrayOfArrayOfStrings": {
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"autoupdate": {
"additionalProperties": false,
"properties": {
"architecture": {
"additionalProperties": false,
"properties": {
"32bit": {
"additionalProperties": false,
"properties": {
"extract_dir": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"64bit": {
"additionalProperties": false,
"properties": {
"extract_dir": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
},
"hash": {
"additionalProperties": false,
"properties": {
"find": {
"format": "regex",
"type": "string"
},
"mode": {
"enum": [
"download",
"extract",
"rdf"
]
},
"type": {
"enum": [
"md5",
"sha1",
"sha256",
"sha512"
]
},
"url": {
"anyOf": [
{
"format": "uri",
"type": "string"
},
{
"pattern": "^\\$url.[\\w\\d]+$",
"type": "string"
}
]
}
},
"type": "object"
},
"note": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"url": {
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"checkver": {
"anyOf": [
{
"format": "regex",
"type": "string"
},
{
"additionalProperties": false,
"properties": {
"github": {
"format": "uri",
"type": "string"
},
"re": {
"format": "regex",
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"type": "object"
}
]
},
"installer": {
"additionalProperties": false,
"properties": {
"_comment": {
"description": "Undocumented: only used in scoop-extras/oraclejdk* and scoop-extras/appengine-go",
"type": "string"
},
"args": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"file": {
"type": "string"
},
"keep": {
"type": "string"
}
},
"type": "object"
},
"stringOrArrayOfStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"stringOrArrayOfOneOrMoreStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
]
},
"stringOrArrayOfStringsOrAnArrayOfArrayOfStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"type": "array"
}
]
},
"uninstaller": {
"properties": {
"args": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"file": {
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
},
"uriOrArrayOfUris": {
"anyOf": [
{
"format": "uri",
"type": "string",
"not": {
"pattern": "(\\$)"
}
},
{
"items": {
"format": "uri",
"type": "string",
"not": {
"pattern": "(\\$)"
}
},
"minItems": 1,
"type": "array"
}
]
}
},
"properties": {
"_comment": {
"description": "Undocumented: only found in scoop/git* and 6 manifests in scoop-extras",
"type": "string"
},
"architecture": {
"additionalProperties": false,
"properties": {
"32bit": {
"additionalProperties": false,
"properties": {
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"checkver": {
"$ref": "#/definitions/checkver"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"installer": {
"$ref": "#/definitions/installer"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Deprecated"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
}
},
"type": "object"
},
"64bit": {
"additionalProperties": false,
"properties": {
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"checkver": {
"$ref": "#/definitions/checkver"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"installer": {
"$ref": "#/definitions/installer"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Deprecated"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
}
},
"type": "object"
}
},
"type": "object"
},
"autoupdate": {
"$ref": "#/definitions/autoupdate"
},
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"checkver": {
"$ref": "#/definitions/checkver"
},
"cookie": {
"description": "Undocumented: only found in scoop-extras/oraclejdk*",
"type": "object"
},
"depends": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"description": {
"description": "Undocumented: only found in scoop/gibo",
"type": "string"
},
"env_add_path": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"env_set": {
"type": "object"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"extract_to": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Undocumented: only found in scoop/ruby*"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"homepage": {
"format": "uri",
"type": "string"
},
"innosetup": {
"description": "Undocumented: only found in 6 manifests in scoop",
"type": "boolean"
},
"installer": {
"$ref": "#/definitions/installer"
},
"license": {
"type": "string"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Deprecated"
},
"notes": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"shortcuts": {
"$ref": "#/definitions/arrayOfArrayOfStrings"
},
"travel_dirs": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Undocumented: only found in scoop-extras/kibana"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
},
"version": {
"type": "string"
},
"suggest": {
"additionalProperties": false,
"patternProperties": {
"^(.*)$": {
"$ref": "#/definitions/stringOrArrayOfStrings"
}
},
"type": "object"
},
"psmodule": {
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"type": "object"
}
},
"title": "scoop app manifest schema",
"type": "object",
"required": [
"version"
]
}