feat(schema): More described opts

This commit is contained in:
2026-04-17 16:56:51 +02:00
parent bcd0339d88
commit b6901b59e6
+51 -3
View File
@@ -6,7 +6,7 @@
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"pattern": "^([a-zA-Z0-9.-_]+\/)+", "pattern": "^([a-zA-Z0-9.-_]+\\/)+",
"description": "Path to other configs, relative to this file (e.g. config/pkgs.yaml will expand to dirname(this_file)/config/pkgs.yaml)" "description": "Path to other configs, relative to this file (e.g. config/pkgs.yaml will expand to dirname(this_file)/config/pkgs.yaml)"
}, },
"description": "Imports for other config files that will be merged into this one. Precedence order is bottom up (i.e. lowest has highest precedence)" "description": "Imports for other config files that will be merged into this one. Precedence order is bottom up (i.e. lowest has highest precedence)"
@@ -45,11 +45,59 @@
}, },
"git": { "git": {
"type": "object", "type": "object",
"properties": {} "description": "Options",
"properties": {
"creds": {
"type": "object",
"description": "Which git services to log into",
"properties": {
"ssh_cert": {
"type": "string"
}
}
},
"repos": {
"type": "array",
"description": "Which repos to clone (removing one from here doesn't delete it from the system and only pulls if folder does not exist)",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "git clone URL",
"pattern": "^(https?:\\/\\/([a-z0-9-]+\\.)+[a-z]+(\\/[a-zA-Z0-9-.]+)+)|(([a-z]+@[a-z0-9-]+\\.)+[a-z]+:([a-zA-Z0-9.-]+\\/)+[a-zA-Z0-9.-]+)"
},
"clone_path": {
"type": "string",
"description": "The location on the local system where to put it. Must be absolute path. Parent folders will be created if they don't exist",
"pattern": "^~?\\/([0-9a-zA-Z.-_]+\\/)*"
}
}
}
}
}
}, },
"template_data": { "template_data": {
"type": "array", "type": "array",
"items": {} "description": "The data to be inserted into the templates",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name that appears in the template"
},
"data": {
"type": "string",
"description": "The data that is to be inserted"
}
},
"required": [
"properties",
"data"
],
"additionalProperties": false
}
}, },
"cmds": { "cmds": {
"type": "array", "type": "array",