{
  "id": "fossil",
  "name": "Fossil",
  "homepage": "https://fossil-scm.org/",
  "description": "A distributed version control system with an integrated web interface.",
  "executables": [
    "fossil"
  ],
  "dotfiles": {
    "paths": [
      "~/.fossil",
      "[configHome]/fossil.db"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Fossil",
    "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.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "clone"
        ],
        "label": "Clone a repository",
        "description": "Make a local copy of a repository and, by default, open a check-out.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://fossil-scm.org/home/help/clone",
            "revision": "Fossil 2.29",
            "evidence": "Usage: fossil clone ?OPTIONS? URI ?FILENAME?\n -A|--admin-user USERNAME \nMake USERNAME the administrator\n --no-open                \nClone only.  Do not open a check-out.\n --private                \nAlso clone private branches\n -u|--unversioned         \nAlso sync unversioned content\n -v|--verbose             \nShow more statistics in output\n --workdir DIR            \nAlso open a check-out in DIR\n"
          }
        ],
        "field": [
          {
            "id": "uri",
            "label": "Repository URI",
            "description": "http(s)://, ssh:// or a local path to a .fossil file.",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "filename",
            "label": "Local repository file",
            "description": "Defaults to a name taken from the URI.",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "output"
            },
            "position": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "workdir",
            "label": "Open check-out in",
            "type": "path",
            "path": {
              "kind": "directory",
              "role": "output"
            },
            "option": [
              "--workdir"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "no_open",
            "label": "Clone only, no check-out",
            "type": "boolean",
            "option": [
              "--no-open"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "admin_user",
            "label": "Admin user",
            "type": "string",
            "option": [
              "--admin-user",
              "-A"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "private",
            "label": "Include private branches",
            "type": "boolean",
            "option": [
              "--private"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "unversioned",
            "label": "Include unversioned content",
            "type": "boolean",
            "option": [
              "--unversioned",
              "-u"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "clone",
            "label": "Clone",
            "fields": [
              "uri",
              "filename"
            ],
            "required": [
              "uri"
            ]
          },
          {
            "id": "clone_workdir",
            "label": "Clone and open in a directory",
            "fields": [
              "uri",
              "filename",
              "workdir"
            ],
            "required": [
              "uri",
              "workdir"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "uri",
              "filename",
              "workdir"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_open",
              "admin_user",
              "private",
              "unversioned",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "commit"
        ],
        "label": "Commit changes",
        "description": "Create a new check-in from the changes in the current check-out.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://fossil-scm.org/home/help/commit",
            "revision": "Fossil 2.29",
            "evidence": "Usage: fossil commit ?OPTIONS? ?FILE...?\n --allow-empty            \nAllow a commit with no changes\n --branch NEW-BRANCH-NAME \nCheck in to this new branch\n -m|--comment COMMENT-TEXT\nUse COMMENT-TEXT as the check-in comment\n -M|--message-file FILE   \nRead the check-in comment from FILE\n -n|--dry-run             \nDo not actually create a new check-in. Just\n --private                \n The --private option creates a private check-in that is never synced.\n --tag option applies the symbolic tag name to the check-in.\n"
          }
        ],
        "field": [
          {
            "id": "comment",
            "label": "Check-in comment",
            "type": "string",
            "option": [
              "--comment",
              "-m"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "message_file",
            "label": "Comment from file",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "input"
            },
            "option": [
              "--message-file",
              "-M"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "branch",
            "label": "New branch",
            "description": "Place the check-in on a newly created branch with this name.",
            "type": "string",
            "option": [
              "--branch"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "allow_empty",
            "label": "Allow empty commit",
            "type": "boolean",
            "option": [
              "--allow-empty"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "private",
            "label": "Private check-in",
            "description": "Never synced.",
            "type": "boolean",
            "option": [
              "--private"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "files",
            "label": "Files",
            "description": "Commit only these files; empty commits all changes.",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "input"
            },
            "position": 0,
            "multiple": true,
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "commit_all",
            "label": "Commit all changes",
            "fields": [
              "comment"
            ],
            "required": [
              "comment"
            ]
          },
          {
            "id": "preview",
            "label": "Dry-run commit",
            "fields": [
              "comment",
              "dry_run"
            ],
            "required": [
              "comment"
            ],
            "set": {
              "dry_run": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "comment",
              "files",
              "dry_run"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "message_file",
              "branch",
              "allow_empty",
              "private"
            ]
          }
        ]
      }
    ]
  }
}
