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  }