{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Solidarity", "description": "A rule-set and config for the Solidarity JSON checker", "type": "object", "properties": { "config": { "output": { "description": "Identify what kind output should happen when a check is called", "type": "string", "enum": ["moderate", "verbose", "silent"] } }, "requirements": { "description": "List of requirement rules for your particular environment", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "oneOf": [ { "$ref": "#/definitions/cli" }, { "$ref": "#/definitions/dir" }, { "$ref": "#/definitions/file" }, { "$ref": "#/definitions/env" }, { "$ref": "#/definitions/shell" }, { "$ref": "#/definitions/custom" } ] }, "minItems": 1, "uniqueItems": true } } }, "required": ["requirements"], "definitions": { "cli": { "description": "CLI Rule", "type": "object", "properties": { "rule": { "enum": [ "cli" ] }, "binary": { "type": "string" }, "semver": { "type": "string"}, "version": { "type": "string"}, "line": { "type": ["string", "integer"] }, "matchIndex": { "type": "integer" }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string"}, "ci": { "type": "boolean" } }, "required": ["rule", "binary"] }, "dir": { "description": "Dir Rule", "type": "object", "properties": { "rule": { "enum": [ "dir", "directory" ] }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string"}, "ci": { "type": "boolean" } }, "required": ["rule", "location"] }, "file": { "description": "File Rule", "type": "object", "properties": { "rule": { "enum": [ "file" ] }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string"}, "ci": { "type": "boolean" } }, "required": ["rule", "location"] }, "env": { "description": "ENV Rule", "type": "object", "properties": { "rule": { "enum": [ "env" ] }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string"}, "ci": { "type": "boolean" } }, "required": ["rule", "variable"] }, "shell": { "description": "Shell Rule", "type": "object", "properties": { "rule": { "enum": [ "shell" ] }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string" }, "ci": { "type": "boolean" }, "match": { "type": "string", "description": "A regexp to search the output." } }, "required": ["rule", "match"] }, "custom": { "description": "Custom Rule", "type": "object", "additionalProperties": true, "properties": { "rule": { "enum": [ "custom" ] }, "plugin": { "type": "string" }, "name": { "type": "string" }, "platform": { "enum": ["darwin", "macos", "freebsd", "linux", "sunos", "win32", "windows"] }, "error": { "type": "string" }, "ci": { "type": "boolean" }, "match": { "type": "string", "description": "A regexp to search the output." } }, "required": ["rule", "plugin", "name"] } } }