{
  "name": "robot",
  "description": "CLI for running Robot Framework automation tests",
  "options": [
    {
      "names": [
        "-h",
        "-?",
        "--help"
      ],
      "description": "Print usage instructions"
    },
    {
      "names": [
        "--rpa"
      ],
      "description": "Turn on the generic automation mode. Mainly affects terminology so that \"test\" is replaced with \"task\" in logs and reports"
    },
    {
      "names": [
        "-F",
        "--extension"
      ],
      "description": "Parse only files with this extension when executing a directory",
      "args": [
        {
          "name": "extension",
          "description": "File extensions divided by colon",
          "suggestions": [
            "txt",
            "robot:txt"
          ]
        }
      ]
    },
    {
      "names": [
        "-N",
        "--name"
      ],
      "description": "Set a name of the top level suite",
      "args": [
        {
          "name": "name"
        }
      ]
    },
    {
      "names": [
        "-D",
        "--doc"
      ],
      "description": "Set a documentation of the top level suite"
    },
    {
      "names": [
        "-M",
        "--metadata"
      ],
      "description": "Set metadata of the top level suite",
      "args": [
        {
          "name": "name:value"
        }
      ]
    },
    {
      "names": [
        "-G",
        "--settag"
      ],
      "description": "Sets given tag to all executed tests",
      "args": [
        {
          "name": "tag"
        }
      ]
    },
    {
      "names": [
        "-t",
        "--test"
      ],
      "description": "Select tests by name or by long name containing also parent suite name like `Parent.Test`",
      "args": [
        {
          "name": "name",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--task"
      ],
      "description": "Alias to --test. Especially applicable with --rpa",
      "args": [
        {
          "name": "name",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "-s",
        "--suite"
      ],
      "description": "Select suites by name",
      "args": [
        {
          "name": "name"
        }
      ]
    },
    {
      "names": [
        "-i",
        "--include"
      ],
      "description": "Select test cases by tag",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "-e",
        "--exclude"
      ],
      "description": "Select test cases not to run by tag",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "-R",
        "--rerunfailed"
      ],
      "description": "Select failed tests from an earlier output file to be re-executed",
      "args": [
        {
          "name": "output file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-S",
        "--rerunfailedsuites"
      ],
      "description": "Select failed suites from an earlier output file to be re-executed",
      "args": [
        {
          "name": "output file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--runemptysuite"
      ],
      "description": "Executes suite even if it contains no tests"
    },
    {
      "names": [
        "--skip"
      ],
      "description": "Tests having given tag will be skipped",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--skiponfailure"
      ],
      "description": "Tests having given tag will be skipped if they fail",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "-v",
        "--variable"
      ],
      "description": "Set variables in the test data",
      "args": [
        {
          "name": "variable"
        }
      ]
    },
    {
      "names": [
        "-V",
        "--variablefile"
      ],
      "description": "Python or YAML file file to read variables from",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-d",
        "--outputdir"
      ],
      "description": "Where to create output files. The default is the directory where tests are run from",
      "args": [
        {
          "name": "directory",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "-o",
        "--output"
      ],
      "description": "XML output file relative to --outputdir unless given as an absolute path. Default: output.xml",
      "args": [
        {
          "name": "file",
          "suggestions": [
            "output.xml"
          ]
        }
      ]
    },
    {
      "names": [
        "-l",
        "--log"
      ],
      "description": "HTML log file. Can be disabled by giving a special value `NONE`. Default: log.html",
      "args": [
        {
          "name": "file",
          "suggestions": [
            "log.html",
            "NONE"
          ]
        }
      ]
    },
    {
      "names": [
        "-r",
        "--report"
      ],
      "description": "HTML report file. Can be disabled with `NONE` similarly as --log. Default: report.html",
      "args": [
        {
          "name": "file",
          "suggestions": [
            "report.html",
            "NONE"
          ]
        }
      ]
    },
    {
      "names": [
        "-x",
        "--xunit"
      ],
      "description": "XUnit compatible result file. Not created unless this option is specified",
      "args": [
        {
          "name": "file",
          "suggestions": [
            "xunit.xml"
          ]
        }
      ]
    },
    {
      "names": [
        "-b",
        "--debugfile"
      ],
      "description": "Debug file written during execution. Not created unless this option is specified",
      "args": [
        {
          "name": "file"
        }
      ]
    },
    {
      "names": [
        "-T",
        "--timestampoutputs"
      ],
      "description": "Adds timestamp in a format `YYYYMMDD-hhmmss` to all generated output files between their basename and extension"
    },
    {
      "names": [
        "--splitlog"
      ],
      "description": "Split the log file into smaller pieces that open in browsers transparently"
    },
    {
      "names": [
        "--logtitle"
      ],
      "description": "Title for the generated log file. The default title is `<SuiteName> Log.`",
      "args": [
        {
          "name": "title"
        }
      ]
    },
    {
      "names": [
        "--reporttitle"
      ],
      "description": "Title for the generated report file. The default title is `<SuiteName> Report`",
      "args": [
        {
          "name": "title"
        }
      ]
    },
    {
      "names": [
        "--reportbackground"
      ],
      "description": "Background colors to use in the report file. Given in format `passed:failed:skipped` where the `:skipped` part can be omitted",
      "args": [
        {
          "name": "colors"
        }
      ]
    },
    {
      "names": [
        "--maxerrorlines"
      ],
      "description": "Maximum number of error message lines to show in report when tests fail. Default is 40, minimum is 10 and `NONE` can be used to show the full message",
      "args": [
        {
          "name": "lines",
          "suggestions": [
            "40",
            "10",
            "NONE"
          ]
        }
      ]
    },
    {
      "names": [
        "--maxassignlength"
      ],
      "description": "Maximum number of characters to show in log when variables are assigned. Zero or negative values can be used to avoid showing assigned values at all. Default is 200",
      "args": [
        {
          "name": "characters",
          "suggestions": [
            "200",
            "0"
          ]
        }
      ]
    },
    {
      "names": [
        "-L",
        "--loglevel"
      ],
      "description": "Threshold level for logging",
      "args": [
        {
          "name": "level",
          "suggestions": [
            "TRACE",
            "DEBUG",
            "INFO",
            "WARN",
            "NONE"
          ]
        }
      ]
    },
    {
      "names": [
        "--suitestatlevel"
      ],
      "description": "How many levels to show in `Statistics by Suite` in log and report",
      "args": [
        {
          "name": "level"
        }
      ]
    },
    {
      "names": [
        "--tagstatinclude"
      ],
      "description": "Include only matching tags in `Statistics by Tag` in log and report",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--tagstatexclude"
      ],
      "description": "Exclude matching tags from `Statistics by Tag`",
      "args": [
        {
          "name": "tag",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--tagstatcombine"
      ],
      "description": "Create combined statistics based on tags. These statistics are added into `Statistics by Tag`",
      "args": [
        {
          "name": "tags:name",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--tagdoc"
      ],
      "description": "Add documentation to tags matching the given pattern",
      "args": [
        {
          "name": "pattern:doc",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--tagstatlink"
      ],
      "description": "Add external links into `Statistics by Tag`. Pattern can use `*`, `?` and `[]` as wildcards",
      "args": [
        {
          "name": "pattern:link:title",
          "generators": [
            {
              "script": [
                "bash",
                "-c",
                "for i in $(find -E . -regex \".*.robot\" -type f); do cat -s $i ; done"
              ]
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--expandkeywords"
      ],
      "description": "Matching keywords will be automatically expanded in the log file",
      "args": [
        {
          "name": "pattern",
          "suggestions": [
            "name:<pattern>",
            "tag:<pattern>"
          ]
        }
      ]
    },
    {
      "names": [
        "--removekeywords"
      ],
      "description": "Remove keyword data from the generated log file",
      "args": [
        {
          "name": "pattern",
          "suggestions": [
            "all",
            "passed",
            "for",
            "while",
            "wuks",
            "name:<pattern>",
            "tag:<pattern>"
          ]
        }
      ]
    },
    {
      "names": [
        "--flattenkeywords"
      ],
      "description": "Flattens matching keywords in the generated log file",
      "args": [
        {
          "name": "pattern",
          "suggestions": [
            "for",
            "while",
            "iteration",
            "name:<pattern>",
            "tag:<pattern>"
          ]
        }
      ]
    },
    {
      "names": [
        "--listener"
      ],
      "description": "A class for monitoring test execution. Gets notifications e.g. when tests start and end",
      "args": [
        {
          "name": "class"
        }
      ]
    },
    {
      "names": [
        "--nostatusrc"
      ],
      "description": "Sets the return code to zero regardless of failures in test cases. Error codes are returned normally"
    },
    {
      "names": [
        "--dryrun"
      ],
      "description": "Sets the return code to zero regardless of failures in test cases. Error codes are returned normally"
    },
    {
      "names": [
        "-X",
        "--exitonfailure"
      ],
      "description": "Stops test execution if any test fails"
    },
    {
      "names": [
        "--exitonerror"
      ],
      "description": "Stops test execution if any error occurs when parsing test data, importing libraries, and so on"
    },
    {
      "names": [
        "--skipteardownonexit"
      ],
      "description": "Causes teardowns to be skipped if test execution is stopped prematurely"
    },
    {
      "names": [
        "--randomize"
      ],
      "description": "Randomizes the test execution order",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "all",
            "suites",
            "tests",
            "none"
          ]
        }
      ]
    },
    {
      "names": [
        "--prerunmodifier"
      ],
      "description": "Class to programmatically modify the suite structure before execution",
      "args": [
        {
          "name": "class"
        }
      ]
    },
    {
      "names": [
        "--prerebotmodifier"
      ],
      "description": "Class to programmatically modify the result model before creating reports and logs",
      "args": [
        {
          "name": "class"
        }
      ]
    },
    {
      "names": [
        "--console"
      ],
      "description": "How to report execution on the console",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "verbose",
            "dotted",
            "quiet",
            "none"
          ]
        }
      ]
    },
    {
      "names": [
        "-.",
        "--dotted"
      ],
      "description": "Shortcut for `--console dotted`"
    },
    {
      "names": [
        "--quiet"
      ],
      "description": "Shortcut for `--console quiet`"
    },
    {
      "names": [
        "-W",
        "--consolewidth"
      ],
      "description": "Width of the console output. Default is 78",
      "args": [
        {
          "name": "chars",
          "suggestions": [
            "78"
          ]
        }
      ]
    },
    {
      "names": [
        "-C",
        "--consolecolors"
      ],
      "description": "Use colors on console output or not",
      "args": [
        {
          "name": "option",
          "suggestions": [
            "auto",
            "on",
            "ansi",
            "off"
          ]
        }
      ]
    },
    {
      "names": [
        "-K",
        "--consolemarkers"
      ],
      "description": "Show markers on the console when top level keywords in a test case end",
      "args": [
        {
          "name": "option",
          "suggestions": [
            "auto",
            "on",
            "off"
          ]
        }
      ]
    },
    {
      "names": [
        "-P",
        "--pythonpath"
      ],
      "description": "Additional locations (directories, ZIPs) where to search libraries and other extensions when they are imported",
      "args": [
        {
          "name": "path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-A",
        "--argumentfile"
      ],
      "description": "Text file to read more arguments from. Use special path `STDIN` to read contents from the standard input stream",
      "args": [
        {
          "name": "path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--version"
      ],
      "description": "Print version information"
    }
  ],
  "args": [
    {
      "name": "robot script",
      "isVariadic": true,
      "template": "filepaths"
    }
  ]
}
