Improve schema

* Use architecture definition

* Arrays of string shouldn't be empty

* Add back uniqueItems directive

* match version against pattern from install.ps1

* reindent
This commit is contained in:
Richard Kuhnt
2017-02-18 17:57:56 +01:00
parent b9d33e9b99
commit ecd2d16143
+59 -127
View File
@@ -9,24 +9,27 @@
"bin": {
"$ref": "#/definitions/stringOrArrayOfStringsOrAnArrayOfArrayOfStrings"
},
"checkver": {
"$ref": "#/definitions/checkver"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
"$ref": "#/definitions/stringOrArrayOfUniqueStrings"
},
"installer": {
"$ref": "#/definitions/installer"
},
"msi": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings",
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Deprecated"
},
"post_install": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"pre_install": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"uninstaller": {
"$ref": "#/definitions/uninstaller"
@@ -42,8 +45,10 @@
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"minItems": 1,
"type": "array"
},
"autoupdate": {
@@ -82,7 +87,7 @@
"type": "object"
},
"extract_dir": {
"$ref": "#/definitions/stringOrArrayOfOneOrMoreStrings"
"type": "string"
},
"hash": {
"additionalProperties": false,
@@ -177,19 +182,6 @@
"type": "object"
},
"stringOrArrayOfStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"stringOrArrayOfOneOrMoreStrings": {
"anyOf": [
{
"type": "string"
@@ -210,22 +202,28 @@
},
{
"items": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
"$ref": "#/definitions/stringOrArrayOfStrings"
},
"minItems": 1,
"type": "array"
}
]
},
"stringOrArrayOfUniqueStrings": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
}
]
},
"uninstaller": {
"properties": {
"args": {
@@ -244,21 +242,22 @@
"anyOf": [
{
"format": "uri",
"type": "string",
"not": {
"pattern": "(\\$)"
}
},
"type": "string"
},
{
"items": {
"format": "uri",
"type": "string",
"not": {
"pattern": "(\\$)"
}
},
"type": "string"
},
"minItems": 1,
"type": "array"
"type": "array",
"uniqueItems": true
}
]
}
@@ -272,78 +271,10 @@
"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"
"$ref": "#/definitions/architecture"
},
"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"
"$ref": "#/definitions/architecture"
}
},
"type": "object"
@@ -382,7 +313,7 @@
"description": "Undocumented: only found in scoop/ruby*"
},
"hash": {
"$ref": "#/definitions/stringOrArrayOfStrings"
"$ref": "#/definitions/stringOrArrayOfUniqueStrings"
},
"homepage": {
"format": "uri",
@@ -411,9 +342,27 @@
"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"
},
"travel_dirs": {
"$ref": "#/definitions/stringOrArrayOfStrings",
"description": "Undocumented: only found in scoop-extras/kibana"
@@ -425,30 +374,13 @@
"$ref": "#/definitions/uriOrArrayOfUris"
},
"version": {
"pattern": "^[\\w\\.\\-_]+$",
"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"
]
],
"title": "scoop app manifest schema",
"type": "object"
}