]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/commitdiff
Add json schema for json validation (for manual editing) (#197)
authorAttila Greguss <floyd0122@gmail.com>
Thu, 24 Nov 2022 11:28:03 +0000 (11:28 +0000)
committerGitHub <noreply@github.com>
Thu, 24 Nov 2022 11:28:03 +0000 (12:28 +0100)
json-schema/file.json [new file with mode: 0644]
json-schema/program.json [new file with mode: 0644]

diff --git a/json-schema/file.json b/json-schema/file.json
new file mode 100644 (file)
index 0000000..1a3e217
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "title": "File schema",
+    "properties": {
+        "path": {
+            "type": "string",
+            "description": "Path to file (or folder).",
+            "minLength": 1
+        },
+        "movable": {
+            "type": "boolean",
+            "description": "Is file (or folder) movable to a place other than $HOME."
+        },
+        "help": {
+            "type": "string",
+            "description": "Help text for user. Supports markdown."
+        }
+    },
+    "required": [
+        "path",
+        "movable",
+        "help"
+    ]
+}
\ No newline at end of file
diff --git a/json-schema/program.json b/json-schema/program.json
new file mode 100644 (file)
index 0000000..d569273
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "title": "Program",
+    "description": "Specification of files or folders in the $HOME folder for a program",
+    "properties": {
+        "name": {
+            "type": "string",
+            "description": "Name of the program",
+            "minLength": 1
+        },
+        "files": {
+            "description": "List of files (or folders) associated with the program",
+            "type": "array",
+            "items": {
+                "$ref": "file.json"
+            },
+            "minItems": 1
+        }
+    },
+    "required": [
+        "name",
+        "files"
+    ]
+}
\ No newline at end of file