{
  "description": "The common rebar3 jobs: compile, clean, run EUnit or Common Test, and create a project from a template. Releases, dialyzer, plugins and profiles are not covered.",
  "name": "rebar3",
  "subcommands": [
    {
      "name": "compile",
      "description": "Compile project apps and dependencies.",
      "options": [
        {
          "names": [
            "--deps_only",
            "-d"
          ],
          "description": "Dependencies only"
        }
      ]
    },
    {
      "name": "clean",
      "description": "Remove compiled BEAM files.",
      "options": [
        {
          "names": [
            "--all",
            "-a"
          ],
          "description": "Include dependencies",
          "isDangerous": true
        },
        {
          "names": [
            "--apps"
          ],
          "description": "Apps (comma separated)",
          "args": {
            "name": "apps",
            "isOptional": false
          }
        }
      ]
    },
    {
      "name": "eunit",
      "description": "Run EUnit tests on project apps.",
      "options": [
        {
          "names": [
            "--application"
          ],
          "description": "Applications (comma separated)",
          "args": {
            "name": "application",
            "isOptional": false
          }
        },
        {
          "names": [
            "--cover",
            "-c"
          ],
          "description": "Generate cover data"
        }
      ]
    },
    {
      "name": "ct",
      "description": "Run Common Test suites under test/.",
      "options": [
        {
          "names": [
            "--suite"
          ],
          "description": "Suites (comma separated paths)",
          "args": {
            "name": "suite",
            "isOptional": false
          }
        },
        {
          "names": [
            "--group"
          ],
          "description": "Groups (comma separated)",
          "args": {
            "name": "group",
            "isOptional": false
          }
        },
        {
          "names": [
            "--case"
          ],
          "description": "Cases (comma separated)",
          "args": {
            "name": "case",
            "isOptional": false
          }
        },
        {
          "names": [
            "--cover",
            "-c"
          ],
          "description": "Generate cover data"
        },
        {
          "names": [
            "--verbose",
            "-v"
          ],
          "description": "Verbose"
        }
      ]
    },
    {
      "name": "new",
      "description": "Create a project from a template such as app, lib or release.",
      "options": [
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Overwrite existing files",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "template",
          "isOptional": false,
          "suggestions": [
            {
              "name": "app",
              "description": "app"
            },
            {
              "name": "lib",
              "description": "lib"
            },
            {
              "name": "release",
              "description": "release"
            }
          ]
        },
        {
          "name": "name",
          "isOptional": false
        }
      ]
    }
  ]
}
