{
  "name": "kool",
  "description": "Cloud and docker environments made easy",
  "options": [
    {
      "names": [
        "--verbose"
      ],
      "description": "Increases output verbosity"
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Help for kool"
    }
  ],
  "subcommands": [
    {
      "name": "create",
      "description": "Create a new project using a preset",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for create"
        }
      ],
      "args": [
        {
          "name": "preset",
          "description": "Preset that will be used to create the project"
        },
        {
          "name": "folder",
          "description": "Folder where the project will be created",
          "template": "folders"
        }
      ]
    },
    {
      "name": "deploy",
      "description": "Deploy a local application to a Kool Cloud environment",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for deploy"
        }
      ],
      "subcommands": [
        {
          "name": "destroy",
          "description": "Destroy an environment deployed to Kool Cloud",
          "options": [
            {
              "names": [
                "--verbose"
              ],
              "description": "Increases output verbosity"
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Help for destroy"
            }
          ]
        },
        {
          "name": "exec",
          "description": "Execute a command inside a running service container deployed to Kool Cloud",
          "options": [
            {
              "names": [
                "--verbose"
              ],
              "description": "Increases output verbosity"
            },
            {
              "names": [
                "--container",
                "-c"
              ],
              "description": "Container target",
              "args": [
                {
                  "name": "container"
                }
              ]
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Help for exec"
            }
          ]
        },
        {
          "name": "logs",
          "description": "See the logs of running service container deployed to Kool Cloud",
          "options": [
            {
              "names": [
                "--verbose"
              ],
              "description": "Increases output verbosity"
            },
            {
              "names": [
                "--container",
                "-c"
              ],
              "description": "Container target",
              "args": [
                {
                  "name": "container"
                }
              ]
            },
            {
              "names": [
                "--follow",
                "-f"
              ],
              "description": "Follow log output"
            },
            {
              "names": [
                "--tail",
                "-t"
              ],
              "description": "Number of lines to show from the end of the logs for each container. A value equal to 0 will show all lines",
              "args": [
                {
                  "name": "tail"
                }
              ]
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Help for logs"
            }
          ]
        }
      ]
    },
    {
      "name": "docker",
      "description": "Create a new container (a powered up 'docker run')",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Environment variables",
          "isRepeatable": -1,
          "args": [
            {
              "name": "env"
            }
          ]
        },
        {
          "names": [
            "--network",
            "-n"
          ],
          "description": "Connect a container to a network",
          "isRepeatable": -1,
          "args": [
            {
              "name": "network"
            }
          ]
        },
        {
          "names": [
            "--publish",
            "-p"
          ],
          "description": "Publish a container's port(s) to the host",
          "isRepeatable": -1,
          "args": [
            {
              "name": "publish"
            }
          ]
        },
        {
          "names": [
            "--volume",
            "-v"
          ],
          "description": "Bind mount a volume",
          "isRepeatable": -1,
          "args": [
            {
              "name": "volume"
            }
          ]
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for docker"
        }
      ],
      "args": [
        {
          "name": "image",
          "description": "Docker image"
        },
        {
          "name": "command",
          "description": "Command to execute inside the container",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "exec",
      "description": "Execute a command inside a running service container",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--detach",
            "-d"
          ],
          "description": "Detached mode: Run command in the background"
        },
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Environment variables",
          "isRepeatable": -1,
          "args": [
            {
              "name": "env"
            }
          ]
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for exec"
        }
      ],
      "args": [
        {
          "name": "service",
          "description": "Service you want to execute a command"
        },
        {
          "name": "command",
          "description": "Command to execute inside the container",
          "isVariadic": true
        }
      ]
    },
    {
      "name": "info",
      "description": "Print out information about the local environment",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for info"
        }
      ]
    },
    {
      "name": "logs",
      "description": "Display log output from running service containers",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--follow",
            "-f"
          ],
          "description": "Follow log output"
        },
        {
          "names": [
            "--tail",
            "-t"
          ],
          "description": "Number of lines to show from the end of the logs for each container. A value equal to 0 will show all lines",
          "args": [
            {
              "name": "tail"
            }
          ]
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for logs"
        }
      ],
      "args": [
        {
          "name": "service",
          "description": "Service to get logs from",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "preset",
      "description": "Install configuration files customized for Kool in the current directory",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for preset"
        }
      ],
      "args": [
        {
          "name": "preset",
          "description": "Preset that will be used to configure the project"
        }
      ]
    },
    {
      "name": "recipe",
      "description": "Adds configuration for some recipe in the current work directory",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for recipe"
        }
      ],
      "args": [
        {
          "name": "recipe",
          "description": "Recipe that will be used to add configuration"
        }
      ]
    },
    {
      "name": "restart",
      "description": "Restart running service containers (the same as 'kool stop' followed by 'kool start')",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--purge"
          ],
          "description": "Remove all persistent data from volume mounts on containers"
        },
        {
          "names": [
            "--rebuild"
          ],
          "description": "Updates and builds service's images"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for restart"
        }
      ],
      "args": [
        {
          "name": "service",
          "description": "Service you want to restart",
          "isOptional": true,
          "isVariadic": true,
          "generators": [
            {
              "script": [
                "docker-compose",
                "config",
                "--services"
              ],
              "splitOn": "\n"
            }
          ]
        }
      ]
    },
    {
      "name": "run",
      "description": "Execute a script defined in kool.yml",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Environment variables",
          "isRepeatable": -1,
          "args": [
            {
              "name": "env"
            }
          ]
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for run"
        }
      ],
      "args": [
        {
          "name": "script",
          "description": "Script to be executed",
          "generators": [
            {
              "script": [
                "kool",
                "run",
                "--help"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "self-update",
      "description": "Update kool to the latest version",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for self-update"
        }
      ]
    },
    {
      "name": "share",
      "description": "Live share your local environment on the Internet using an HTTP tunnel",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--port"
          ],
          "description": "The port from the target service that should be shared. If not provided, it will default to port 80",
          "args": [
            {
              "name": "port"
            }
          ]
        },
        {
          "names": [
            "--service"
          ],
          "description": "The name of the local service container you want to share",
          "args": [
            {
              "name": "service"
            }
          ]
        },
        {
          "names": [
            "--subdomain"
          ],
          "description": "The subdomain used to generate your public https://subdomain.kool.live URL",
          "args": [
            {
              "name": "subdomain"
            }
          ]
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for share"
        }
      ]
    },
    {
      "name": "start",
      "description": "Start service containers defined in docker-compose.yml",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--foreground",
            "-f"
          ],
          "description": "Start containers in foreground mode"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Specify a profile to enable",
          "args": [
            {
              "name": "profile"
            }
          ]
        },
        {
          "names": [
            "--rebuild",
            "-b"
          ],
          "description": "Updates and builds service's images"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for start"
        }
      ],
      "args": [
        {
          "name": "service",
          "description": "Service you want to start",
          "isOptional": true,
          "isVariadic": true,
          "generators": [
            {
              "script": [
                "docker-compose",
                "config",
                "--services"
              ],
              "splitOn": "\n"
            }
          ]
        }
      ]
    },
    {
      "name": "status",
      "description": "Show the status of all service containers",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for status"
        }
      ]
    },
    {
      "name": "stop",
      "description": "Stop and destroy running service containers",
      "options": [
        {
          "names": [
            "--verbose"
          ],
          "description": "Increases output verbosity"
        },
        {
          "names": [
            "--purge"
          ],
          "description": "Remove all persistent data from volume mounts on containers"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for stop"
        }
      ],
      "args": [
        {
          "name": "service",
          "description": "Service you want to stop",
          "isOptional": true,
          "isVariadic": true,
          "generators": [
            {
              "script": [
                "docker-compose",
                "config",
                "--services"
              ],
              "splitOn": "\n"
            }
          ]
        }
      ]
    }
  ]
}
