Files
Scoop/schema.json

416 lines
13 KiB
JSON

{
"$id": "http://scoop.sh/draft/schema#",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"definitions": {
"hashPattern": {
"pattern": "^([a-fA-F0-9]{64}|(sha1|sha256|sha512|md5):([a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{64}|[a-fA-F0-9]{128}))$",
"type": "string"
},
"hash": {
"anyOf": [
{
"$ref": "#/definitions/hashPattern"
},
{
"items": {
"$ref": "#/definitions/hashPattern"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
}
]
},
"hashExtraction": {
"additionalProperties": false,
"properties": {
"find": {
"format": "regex",
"type": "string"
},
"jp": {
"pattern": "^\\$\\..*$",
"type": "string"
},
"mode": {
"enum": [
"download",
"extract",
"json",
"rdf"
]
},
"type": {
"enum": [
"md5",
"sha1",
"sha256",
"sha512"
],
"description": "Deprecated, hash type is determined automatically"
},
"url": {
"anyOf": [
{
"format": "uri",
"type": "string"
},
{
"pattern": "^(\\$url|\\$baseurl).[\\w\\d]+$",
"type": "string"
},
{
"pattern": "^.*(\\$url|\\$baseurl).*$",
"type": "string"
}
]
}
},
"type": "object"
},
"architecture": {
"additionalProperties": false,
"properties": {
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"checkver": {
"$ref": "#/definitions/checkver"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"hash": {
"$ref": "#/definitions/hash"
},
"installer": {
"$ref": "#/definitions/installer"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Deprecated"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"shortcuts": {
"$ref": "#/definitions/arrayOfArrayOfStrings"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
}
},
"type": "object"
},
"arrayOfArrayOfStrings": {
"items": {
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"minItems": 1,
"type": "array"
},
"autoupdate": {
"additionalProperties": false,
"properties": {
"architecture": {
"additionalProperties": false,
"properties": {
"32bit": {
"additionalProperties": false,
"properties": {
"extract_dir": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
},
"hash": {
"$ref": "#/definitions/hashExtraction"
}
},
"type": "object"
},
"64bit": {
"additionalProperties": false,
"properties": {
"extract_dir": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
},
"hash": {
"$ref": "#/definitions/hashExtraction"
}
},
"type": "object"
}
},
"type": "object"
},
"extract_dir": {
"type": "string"
},
"hash": {
"$ref": "#/definitions/hashExtraction"
},
"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"
},
"jp": {
"pattern": "^\\$\\..*$",
"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"
},
"minItems": 1,
"type": "array"
}
]
},
"stringOrArrayOfStringsOrAnArrayOfArrayOfStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"minItems": 1,
"type": "array"
}
]
},
"uninstaller": {
"properties": {
"args": {
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"file": {
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
},
"uriOrArrayOfUris": {
"anyOf": [
{
"format": "uri",
"not": {
"pattern": "(\\$)"
},
"type": "string"
},
{
"items": {
"format": "uri",
"not": {
"pattern": "(\\$)"
},
"type": "string"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
}
]
}
},
"properties": {
"_comment": {
"description": "Undocumented: only found in scoop/git* and 6 manifests in scoop-extras",
"type": "string"
},
"architecture": {
"additionalProperties": false,
"properties": {
"32bit": {
"$ref": "#/definitions/architecture"
},
"64bit": {
"$ref": "#/definitions/architecture"
}
},
"type": "object"
},
"autoupdate": {
"$ref": "#/definitions/autoupdate"
},
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"persist": {
"$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/hash"
},
"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"
},
"psmodule": {
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"type": "object"
},
"shortcuts": {
"$ref": "#/definitions/arrayOfArrayOfStrings"
},
"suggest": {
"additionalProperties": false,
"patternProperties": {
"^(.*)$": {
"$ref": "#/definitions/stringOrArrayOfStrings"
}
},
"type": "object"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
},
"url": {
"$ref": "#/definitions/uriOrArrayOfUris"
},
"version": {
"pattern": "^[\\w\\.\\-_]+$",
"type": "string"
}
},
"required": [
"version"
],
"title": "scoop app manifest schema",
"type": "object"
}