{
  "description": "Clone a Fossil repository or commit changes in the current check-out. Only a few options of fossil clone and fossil commit are covered; sync, branch and server commands are left out.",
  "name": "fossil",
  "subcommands": [
    {
      "name": "clone",
      "description": "Make a local copy of a repository and, by default, open a check-out.",
      "options": [
        {
          "names": [
            "--workdir"
          ],
          "description": "Open check-out in",
          "args": {
            "name": "workdir",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "--no-open"
          ],
          "description": "Clone only, no check-out"
        },
        {
          "names": [
            "--admin-user",
            "-A"
          ],
          "description": "Admin user",
          "args": {
            "name": "admin_user",
            "isOptional": false
          }
        },
        {
          "names": [
            "--private"
          ],
          "description": "Include private branches"
        },
        {
          "names": [
            "--unversioned",
            "-u"
          ],
          "description": "Include unversioned content"
        },
        {
          "names": [
            "--verbose",
            "-v"
          ],
          "description": "Verbose"
        }
      ],
      "args": [
        {
          "name": "uri",
          "description": "http(s)://, ssh:// or a local path to a .fossil file.",
          "isOptional": false
        },
        {
          "name": "filename",
          "description": "Defaults to a name taken from the URI.",
          "isOptional": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "commit",
      "description": "Create a new check-in from the changes in the current check-out.",
      "options": [
        {
          "names": [
            "--comment",
            "-m"
          ],
          "description": "Check-in comment",
          "args": {
            "name": "comment",
            "isOptional": false
          }
        },
        {
          "names": [
            "--message-file",
            "-M"
          ],
          "description": "Comment from file",
          "args": {
            "name": "message_file",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--branch"
          ],
          "description": "Place the check-in on a newly created branch with this name.",
          "args": {
            "name": "branch",
            "description": "Place the check-in on a newly created branch with this name.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--dry-run",
            "-n"
          ],
          "description": "Dry run"
        },
        {
          "names": [
            "--allow-empty"
          ],
          "description": "Allow empty commit"
        },
        {
          "names": [
            "--private"
          ],
          "description": "Never synced."
        }
      ],
      "args": [
        {
          "name": "files",
          "description": "Commit only these files; empty commits all changes.",
          "isOptional": true,
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    }
  ]
}
