]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blob - json-schema/program.json
Add lyrics entry to ncmpcpp (#402)
[xdg-ninja.git] / json-schema / program.json
1 {
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "definitions": {
4 "empty": {
5 "type": "string",
6 "pattern": "^\\s+$"
7 }
8 },
9 "title": "specification",
10 "description": "A specification of files or folders in the $HOME folder for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
11 "type": "object",
12 "required": ["name", "files"],
13 "properties": {
14 "name": {
15 "title": "name",
16 "description": "A program name\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",
17 "type": "string",
18 "minLength": 1,
19 "not": {
20 "$ref": "#/definitions/empty"
21 },
22 "examples": ["abook"]
23 },
24 "files": {
25 "title": "files",
26 "description": "Files and folders for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
27 "type": "array",
28 "uniqueItems": true,
29 "minItems": 1,
30 "items": {
31 "description": "A file or a folder for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
32 "type": "object",
33 "required": ["path", "movable", "help"],
34 "properties": {
35 "path": {
36 "title": "path",
37 "description": "A path to a file or a folder\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",
38 "type": "string",
39 "minLength": 1,
40 "not": {
41 "$ref": "#/definitions/empty"
42 },
43 "examples": ["$HOME/.abook"]
44 },
45 "movable": {
46 "title": "movable",
47 "description": "Whether a file or a folder is movable to a place other than $HOME\nhttps://github.com/b3nj5m1n/xdg-ninja",
48 "type": "boolean"
49 },
50 "help": {
51 "title": "help",
52 "description": "A help message for a user in markdown\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",
53 "type": "string",
54 "minLength": 1,
55 "not": {
56 "$ref": "#/definitions/empty"
57 },
58 "examples": [
59 "Alias abook to use custom locations for configuration and data:\n\n```bash\nalias abook=abook --config \"$XDG_CONFIG_HOME\"/abook/abookrc --datafile \"$XDG_DATA_HOME\"/abook/addressbook\n```\n"
60 ]
61 }
62 }
63 }
64 }
65 }
66 }