diff --git a/config.schema.json b/config.schema.json index 5a6dc69..6326a3e 100644 --- a/config.schema.json +++ b/config.schema.json @@ -273,20 +273,86 @@ "items": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "The name that appears in the template" - }, - "data": { - "type": "string", - "description": "The data that is to be inserted" + "enum": [ + "string", + "array" + ], + "description": "The type of data included. Can be omitted, which then defaults to string", + "default": "string" } }, + "if": { + "properties": { + "type": { + "const": "array" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "array" + ], + "description": "The type of data included. Can be omitted, which then defaults to string", + "default": "string" + }, + "name": { + "type": "string", + "description": "The name that appears in the template" + }, + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "template": { + "type": "string" + } + }, + "required": [ + "items", + "template", + "name" + ], + "additionalProperties": false + }, + "else": { + "properties": { + "name": { + "type": "string", + "description": "The name that appears in the template" + }, + "type": { + "type": "string", + "enum": [ + "string", + "array" + ], + "description": "The type of data included. Can be omitted, which then defaults to string", + "default": "string" + }, + "data": { + "type": "string", + "description": "The data that is to be inserted" + } + }, + "required": [ + "data" + ], + "additionalProperties": false + }, "required": [ - "name", - "data" - ], - "additionalProperties": false + "name" + ] } }, "symlinks": { diff --git a/config.yml b/config.yml index 1a7ca4c..b730470 100644 --- a/config.yml +++ b/config.yml @@ -44,7 +44,11 @@ git: template_data: - name: template_data_name - data: the_data + type: array + template: | + test {{ data }} + items: + - test cmds: always: