mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2025-10-30 06:07:56 +00:00
685 lines
22 KiB
JSON
685 lines
22 KiB
JSON
{
|
|
"$id": "http://scoop.sh/draft/schema#",
|
|
"$schema": "http://json-schema.org/draft-07/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"
|
|
},
|
|
"jsonPathPattern": {
|
|
"pattern": "^\\$[.\\[].*$",
|
|
"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",
|
|
"description": "Same as 'regex'"
|
|
},
|
|
"regex": {
|
|
"format": "regex",
|
|
"type": "string"
|
|
},
|
|
"jp": {
|
|
"$ref": "#/definitions/jsonPathPattern",
|
|
"description": "Same as 'jsonpath'"
|
|
},
|
|
"jsonpath": {
|
|
"$ref": "#/definitions/jsonPathPattern"
|
|
},
|
|
"xpath": {
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"enum": [
|
|
"download",
|
|
"extract",
|
|
"json",
|
|
"xpath",
|
|
"rdf",
|
|
"metalink",
|
|
"fosshub",
|
|
"sourceforge"
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"hashExtractionOrArrayOfHashExtractions": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/hashExtraction"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/definitions/hashExtraction"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"uniqueItems": false
|
|
}
|
|
]
|
|
},
|
|
"architecture": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"bin": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"checkver": {
|
|
"$ref": "#/definitions/checkver"
|
|
},
|
|
"env_add_path": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"env_set": {
|
|
"type": "object"
|
|
},
|
|
"extract_dir": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"hash": {
|
|
"$ref": "#/definitions/hash"
|
|
},
|
|
"installer": {
|
|
"$ref": "#/definitions/installer"
|
|
},
|
|
"post_install": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"post_uninstall": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"pre_install": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"pre_uninstall": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"shortcuts": {
|
|
"$ref": "#/definitions/shortcutsArray"
|
|
},
|
|
"uninstaller": {
|
|
"$ref": "#/definitions/uninstaller"
|
|
},
|
|
"url": {
|
|
"$ref": "#/definitions/uriOrArrayOfUris"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"arrayOfArrayOfStrings": {
|
|
"items": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
},
|
|
"shortcutsArray": {
|
|
"items": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 2,
|
|
"maxItems": 4,
|
|
"type": "array"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
},
|
|
"autoupdateArch": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"bin": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"env_add_path": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"env_set": {
|
|
"type": "object"
|
|
},
|
|
"extract_dir": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"hash": {
|
|
"$ref": "#/definitions/hashExtractionOrArrayOfHashExtractions"
|
|
},
|
|
"installer": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"shortcuts": {
|
|
"$ref": "#/definitions/shortcutsArray"
|
|
},
|
|
"url": {
|
|
"$ref": "#/definitions/autoupdateUriOrArrayOfAutoupdateUris"
|
|
}
|
|
}
|
|
},
|
|
"autoupdate": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"architecture": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"32bit": {
|
|
"$ref": "#/definitions/autoupdateArch"
|
|
},
|
|
"64bit": {
|
|
"$ref": "#/definitions/autoupdateArch"
|
|
},
|
|
"arm64": {
|
|
"$ref": "#/definitions/autoupdateArch"
|
|
}
|
|
}
|
|
},
|
|
"bin": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"env_add_path": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"env_set": {
|
|
"type": "object"
|
|
},
|
|
"extract_dir": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"hash": {
|
|
"$ref": "#/definitions/hashExtractionOrArrayOfHashExtractions"
|
|
},
|
|
"installer": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"license": {
|
|
"$ref": "#/definitions/license"
|
|
},
|
|
"notes": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"persist": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"psmodule": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"shortcuts": {
|
|
"$ref": "#/definitions/shortcutsArray"
|
|
},
|
|
"url": {
|
|
"$ref": "#/definitions/autoupdateUriOrArrayOfAutoupdateUris"
|
|
}
|
|
}
|
|
},
|
|
"checkver": {
|
|
"anyOf": [
|
|
{
|
|
"format": "regex",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"github": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"re": {
|
|
"format": "regex",
|
|
"type": "string",
|
|
"description": "Same as 'regex'"
|
|
},
|
|
"regex": {
|
|
"format": "regex",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"jp": {
|
|
"$ref": "#/definitions/jsonPathPattern",
|
|
"description": "Same as 'jsonpath'"
|
|
},
|
|
"jsonpath": {
|
|
"$ref": "#/definitions/jsonPathPattern"
|
|
},
|
|
"xpath": {
|
|
"type": "string"
|
|
},
|
|
"reverse": {
|
|
"description": "Reverse the order of regex matches",
|
|
"type": "boolean"
|
|
},
|
|
"replace": {
|
|
"description": "Allows rearrange the regexp matches",
|
|
"type": "string"
|
|
},
|
|
"useragent": {
|
|
"type": "string"
|
|
},
|
|
"script": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings",
|
|
"description": "Custom PowerShell script to retrieve application version using more complex approach."
|
|
},
|
|
"sourceforge": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"project": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"script": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"keep": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"script": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
}
|
|
},
|
|
"oneOf": [
|
|
{
|
|
"required": [
|
|
"file"
|
|
]
|
|
},
|
|
{
|
|
"required": [
|
|
"script"
|
|
]
|
|
}
|
|
],
|
|
"type": "object"
|
|
},
|
|
"uriOrArrayOfUris": {
|
|
"anyOf": [
|
|
{
|
|
"format": "uri",
|
|
"not": {
|
|
"pattern": "(\\$)"
|
|
},
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"format": "uri",
|
|
"not": {
|
|
"pattern": "(\\$)"
|
|
},
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
}
|
|
]
|
|
},
|
|
"autoupdateUriOrArrayOfAutoupdateUris": {
|
|
"anyOf": [
|
|
{
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
}
|
|
]
|
|
},
|
|
"licenseIdentifiers": {
|
|
"type": "string",
|
|
"description": "License identifier based on SPDX License List https://spdx.org/licenses/",
|
|
"examples": [
|
|
"Apache-2.0",
|
|
"BSD-3-Clause",
|
|
"Freeware",
|
|
"GPL-2.0-only",
|
|
"GPL-2.0-or-later",
|
|
"GPL-3.0-only",
|
|
"GPL-3.0-or-later",
|
|
"ISC",
|
|
"LGPL-2.0-only",
|
|
"LGPL-2.0-or-later",
|
|
"LGPL-2.1-only",
|
|
"LGPL-2.1-or-later",
|
|
"LGPL-3.0-only",
|
|
"LGPL-3.0-or-later",
|
|
"MIT",
|
|
"MS-PL",
|
|
"Proprietary",
|
|
"Public Domain",
|
|
"Shareware",
|
|
"Unlicense"
|
|
]
|
|
},
|
|
"license": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/licenseIdentifiers"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"url": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"identifier": {
|
|
"$ref": "#/definitions/licenseIdentifiers"
|
|
}
|
|
},
|
|
"required": [
|
|
"identifier"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"_comment": {
|
|
"description": "Deprecated. Use ## instead.",
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"##": {
|
|
"description": "A comment.",
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"architecture": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"32bit": {
|
|
"$ref": "#/definitions/architecture"
|
|
},
|
|
"64bit": {
|
|
"$ref": "#/definitions/architecture"
|
|
},
|
|
"arm64": {
|
|
"$ref": "#/definitions/architecture"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"autoupdate": {
|
|
"$ref": "#/definitions/autoupdate"
|
|
},
|
|
"bin": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"persist": {
|
|
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
|
|
},
|
|
"checkver": {
|
|
"$ref": "#/definitions/checkver"
|
|
},
|
|
"cookie": {
|
|
"description": "Undocumented: Found at https://github.com/se35710/scoop-java/search?l=JSON&q=cookie",
|
|
"type": "object"
|
|
},
|
|
"depends": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"env_add_path": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"env_set": {
|
|
"type": "object"
|
|
},
|
|
"extract_dir": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"extract_to": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"hash": {
|
|
"$ref": "#/definitions/hash"
|
|
},
|
|
"homepage": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"innosetup": {
|
|
"description": "True if the installer InnoSetup based. Found in https://github.com/ScoopInstaller/Main/search?l=JSON&q=innosetup",
|
|
"type": "boolean"
|
|
},
|
|
"installer": {
|
|
"$ref": "#/definitions/installer"
|
|
},
|
|
"license": {
|
|
"$ref": "#/definitions/license"
|
|
},
|
|
"notes": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"post_install": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"post_uninstall": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"pre_install": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"pre_uninstall": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
},
|
|
"psmodule": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"shortcuts": {
|
|
"$ref": "#/definitions/shortcutsArray"
|
|
},
|
|
"suggest": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(.*)$": {
|
|
"$ref": "#/definitions/stringOrArrayOfStrings"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"uninstaller": {
|
|
"$ref": "#/definitions/uninstaller"
|
|
},
|
|
"url": {
|
|
"$ref": "#/definitions/uriOrArrayOfUris"
|
|
},
|
|
"version": {
|
|
"pattern": "^[\\w\\.\\-+_]+$",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"if": {
|
|
"properties": {
|
|
"architecture": {
|
|
"properties": {
|
|
"64bit": {
|
|
"properties": {
|
|
"url": false
|
|
}
|
|
},
|
|
"32bit": {
|
|
"properties": {
|
|
"url": false
|
|
}
|
|
},
|
|
"arm64": {
|
|
"properties": {
|
|
"url": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"then": {
|
|
"required": [
|
|
"url"
|
|
]
|
|
},
|
|
"required": [
|
|
"version",
|
|
"homepage",
|
|
"license"
|
|
],
|
|
"title": "scoop app manifest schema",
|
|
"type": "object"
|
|
}
|