{
  "description": "Manage dotfiles with dotdrop: install, compare, import and update. Remove, uninstall, detail and the listing commands are not covered.",
  "name": "dotdrop",
  "subcommands": [
    {
      "name": "install",
      "description": "Install dotfiles",
      "options": [
        {
          "names": [
            "--profile",
            "-p"
          ],
          "description": "Profile",
          "args": {
            "name": "profile",
            "isOptional": false
          }
        },
        {
          "names": [
            "--cfg",
            "-c"
          ],
          "description": "Config file",
          "args": {
            "name": "cfg",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--dry",
            "-d"
          ],
          "description": "Dry run"
        },
        {
          "names": [
            "--showdiff",
            "-D"
          ],
          "description": "Show diff before overwriting"
        },
        {
          "names": [
            "--nodiff",
            "-n"
          ],
          "description": "Skip diff"
        },
        {
          "names": [
            "--temp",
            "-t"
          ],
          "description": "Install to a temporary directory"
        },
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Overwrites existing files without asking.",
          "isDangerous": true
        },
        {
          "names": [
            "--verbose",
            "-V"
          ],
          "description": "Verbose"
        },
        {
          "names": [
            "--no-banner",
            "-b"
          ],
          "description": "No banner"
        }
      ],
      "args": [
        {
          "name": "keys",
          "description": "Leave empty to install every dotfile of the profile.",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "compare",
      "description": "Compare dotfiles",
      "options": [
        {
          "names": [
            "--profile",
            "-p"
          ],
          "description": "Profile",
          "args": {
            "name": "profile",
            "isOptional": false
          }
        },
        {
          "names": [
            "--cfg",
            "-c"
          ],
          "description": "Config file",
          "args": {
            "name": "cfg",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--file",
            "-C"
          ],
          "description": "Dotfile to compare",
          "args": {
            "name": "file",
            "isOptional": false,
            "isVariadic": true,
            "template": "filepaths"
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--ignore",
            "-i"
          ],
          "description": "Ignore pattern",
          "args": {
            "name": "ignore",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--file-only",
            "-L"
          ],
          "description": "List differing files only"
        },
        {
          "names": [
            "--verbose",
            "-V"
          ],
          "description": "Verbose"
        }
      ]
    },
    {
      "name": "import",
      "description": "Import files into dotdrop",
      "options": [
        {
          "names": [
            "--profile",
            "-p"
          ],
          "description": "Profile",
          "args": {
            "name": "profile",
            "isOptional": false
          }
        },
        {
          "names": [
            "--cfg",
            "-c"
          ],
          "description": "Config file",
          "args": {
            "name": "cfg",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--link",
            "-l"
          ],
          "description": "Link option",
          "args": {
            "name": "link",
            "isOptional": false,
            "suggestions": [
              {
                "name": "nolink",
                "description": "No link"
              },
              {
                "name": "absolute",
                "description": "Absolute"
              },
              {
                "name": "relative",
                "description": "Relative"
              },
              {
                "name": "link_children",
                "description": "Link children"
              }
            ]
          }
        },
        {
          "names": [
            "--as",
            "-s"
          ],
          "description": "Import as a different path",
          "args": {
            "name": "as",
            "isOptional": false
          }
        },
        {
          "names": [
            "--ignore",
            "-i"
          ],
          "description": "Ignore pattern",
          "args": {
            "name": "ignore",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--preserve-mode",
            "-m"
          ],
          "description": "Preserve file mode"
        },
        {
          "names": [
            "--dry",
            "-d"
          ],
          "description": "Dry run"
        }
      ],
      "args": [
        {
          "name": "paths",
          "isOptional": false,
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    }
  ]
}
