You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
72 lines
1.9 KiB
{ |
|
"$schema": "http://json-schema.org/draft-07/schema#", |
|
"type": "object", |
|
"properties": { |
|
"name": { "type": "string" }, |
|
"display-name": { "type": "string" }, |
|
"author": { "type": "string" }, |
|
"download": { "$ref": "#/definitions/steps" }, |
|
"install": { "$ref": "#/definitions/steps" } |
|
}, |
|
"required": ["name", "display-name", "author", "download", "install"], |
|
"definitions": { |
|
"steps": { |
|
"type": "object", |
|
"properties": { |
|
"steps": { |
|
"type": "array", |
|
"items": { "$ref": "#/definitions/step" } |
|
} |
|
}, |
|
"required": ["steps"] |
|
}, |
|
"step": { |
|
"type": "object", |
|
"properties": { |
|
"name": { "type": "string" }, |
|
"uses": { "enum": ["venv", "venv-run", "git"] }, |
|
"if": { "type": "string" }, |
|
"with": {} |
|
}, |
|
"required": ["uses", "with"], |
|
"allOf": [ |
|
{ |
|
"if": { "properties": { "uses": { "const": "venv" } } }, |
|
"then": { "properties": { "with": { "$ref": "#/definitions/with-path" } } } |
|
}, |
|
{ |
|
"if": { "properties": { "uses": { "const": "venv-run" } } }, |
|
"then": { "properties": { "with": { "$ref": "#/definitions/with-args" } } } |
|
}, |
|
{ |
|
"if": { "properties": { "uses": { "const": "git" } } }, |
|
"then": { "properties": { "with": { "$ref": "#/definitions/with-args" } } } |
|
} |
|
] |
|
}, |
|
"with-path": { |
|
"type": "object", |
|
"properties": { |
|
"path": { "type": "string" } |
|
}, |
|
"required": ["path"], |
|
"additionalProperties": false |
|
}, |
|
"with-args": { |
|
"type": "object", |
|
"properties": { |
|
"args": { |
|
"oneOf": [ |
|
{ "type": "string" }, |
|
{ |
|
"type": "array", |
|
"items": { "type": "string" } |
|
} |
|
] |
|
} |
|
}, |
|
"required": ["args"], |
|
"additionalProperties": false |
|
} |
|
} |
|
}
|
|
|