Files
archmgr/config.schema.json
T

117 lines
4.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"properties": {
"requires": {
"type": "array",
"items": {
"type": "string",
"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": "Imports for other config files that will be merged into this one. Precedence order is bottom up (i.e. lowest has highest precedence)"
},
"pkgs": {
"type": "object",
"description": "The packages to be installed",
"properties": {
"individual": {
"type:": "array",
"description": "the packages to be installed, by their package name",
"items": {
"type": "string"
}
},
"presets": {
"type": "array",
"maxItems": 1,
"items": {
"type": "string"
}
}
}
},
"users": {
"type": "array",
"properties": {}
},
"boot": {
"type": "object",
"properties": {}
},
"themes": {
"type": "object",
"properties": {}
},
"git": {
"type": "object",
"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": {
"type": "array",
"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": {
"type": "array",
"description": "Commands to run on first install",
"items": {
"type": "string"
}
},
"additionalProperties": false
},
"required": [
"pkgs",
"boot"
],
"additionalProperties": false
}