get.porter.sh/porter@v1.3.0/pkg/exec/schema/exec.json (about) 1 { 2 "$schema": "http://json-schema.org/draft-07/schema#", 3 "definitions": { 4 "installStep": { 5 "type": "object", 6 "properties": { 7 "exec": {"$ref": "#/definitions/exec"} 8 }, 9 "additionalProperties": false, 10 "required": [ 11 "exec" 12 ] 13 }, 14 "upgradeStep": { 15 "type": "object", 16 "properties": { 17 "exec": {"$ref": "#/definitions/exec"} 18 }, 19 "additionalProperties": false, 20 "required": [ 21 "exec" 22 ] 23 }, 24 "invokeStep": { 25 "type": "object", 26 "properties": { 27 "exec": {"$ref": "#/definitions/exec"} 28 }, 29 "additionalProperties": false, 30 "required": [ 31 "exec" 32 ] 33 }, 34 "uninstallStep": { 35 "type": "object", 36 "properties": { 37 "exec": {"$ref": "#/definitions/exec"} 38 }, 39 "additionalProperties": false, 40 "required": [ 41 "exec" 42 ] 43 }, 44 "exec": { 45 "description": "A step that is executed by the exec mixin", 46 "type": "object", 47 "properties": { 48 "description": { 49 "description": "A description of the mixin step", 50 "type": "string" 51 }, 52 "command": { 53 "description": "The name of the command to run", 54 "type": "string" 55 }, 56 "dir": { 57 "description": "The directory in which to execute the command", 58 "type": "string" 59 }, 60 "arguments": { 61 "description": "Positional arguments to pass to the command before any flags", 62 "type": "array", 63 "items": { 64 "type": "string", 65 "minItems": 1 66 } 67 }, 68 "flags": { 69 "description": "Flags to pass to the command", 70 "type": "object", 71 "additionalProperties": { 72 "type": "string" 73 } 74 }, 75 "envs": { 76 "description": "Environment variables to add to the env of the command", 77 "type": "object", 78 "additionalProperties": { 79 "type": "string" 80 } 81 }, 82 "suffix-arguments": { 83 "description": "Positional arguments to pass to the command after any flags", 84 "type": "array", 85 "items": { 86 "type": "string", 87 "minItems": 1 88 } 89 }, 90 "suppress-output": { 91 "description": "Do not print output from the command", 92 "type": "boolean" 93 }, 94 "outputs": { 95 "description": "List of outputs to capture from the command output", 96 "type": "array", 97 "items": { 98 "type": "object", 99 "properties": { 100 "name": { 101 "description": "The output name", 102 "type": "string" 103 }, 104 "jsonPath": { 105 "description": "A json path expression that should be executed against the command's stdout to use as the output value", 106 "type": "string" 107 }, 108 "regex": { 109 "description": "A regular expression that should be executed against the command's stdout to use as the output value", 110 "type": "string" 111 }, 112 "path": { 113 "description": "A path to a file that was generated by the command to use as the output value", 114 "type": "string" 115 } 116 }, 117 "additionalProperties": false, 118 "required": [ 119 "name" 120 ], 121 "oneOf": [ 122 { "required": [ "jsonPath" ] }, 123 { "required": [ "regex" ] }, 124 { "required": [ "path" ] } 125 ] 126 } 127 }, 128 "ignoreError": { 129 "description": "Ignore the command's errors under certain conditions", 130 "type": "object", 131 "properties": { 132 "all": { 133 "description": "Ignore all errors", 134 "type": "boolean" 135 }, 136 "exitCodes": { 137 "description": "Ignore errors when one of the following exit codes are returned", 138 "type": "array", 139 "items": { 140 "type": "integer" 141 } 142 }, 143 "output": { 144 "description": "Ignore errors when the command's stderr meets certain conditions", 145 "type": "object", 146 "properties": { 147 "contains": { 148 "description": "Ignore errors when stderr contains any of the following strings", 149 "type": "array", 150 "items": { 151 "type": "string" 152 } 153 }, 154 "regex": { 155 "description": "Ignore errors when stderr matches any of the following regular expressions", 156 "type": "array", 157 "items": { 158 "type": "string" 159 } 160 } 161 }, 162 "additionalProperties": false 163 } 164 }, 165 "additionalProperties": false 166 } 167 }, 168 "additionalProperties": false, 169 "required": [ 170 "command" 171 ] 172 } 173 }, 174 "type": "object", 175 "properties": { 176 "install": { 177 "type": "array", 178 "items": { 179 "$ref": "#/definitions/installStep" 180 } 181 }, 182 "upgrade": { 183 "type": "array", 184 "items": { 185 "$ref": "#/definitions/upgradeStep" 186 } 187 }, 188 "uninstall": { 189 "type": "array", 190 "items": { 191 "$ref": "#/definitions/uninstallStep" 192 } 193 } 194 }, 195 "additionalProperties": { 196 "type": "array", 197 "items": { 198 "$ref": "#/definitions/invokeStep" 199 } 200 } 201 }