{
  "id": "dotdrop",
  "name": "dotdrop",
  "homepage": "https://dotdrop.readthedocs.io/",
  "description": "Save your dotfiles once, deploy them everywhere.",
  "executables": [
    "dotdrop"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/dotdrop/config.yaml"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Dotdrop",
    "description": "Manage dotfiles with dotdrop: install, compare, import and update. Remove, uninstall, detail and the listing commands are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": true
    },
    "subcommand": [
      {
        "path": [
          "install"
        ],
        "label": "Install dotfiles",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://dotdrop.readthedocs.io/",
            "revision": "dotdrop 1.18.0 --help",
            "evidence": "  dotdrop install   [-VbtfndDaWR] [--prompt] [--no-prompt]\n                                  [-c <path>] [-p <profile>]\n                                  [-w <nb>] [<key>...]\n  -b --no-banner          Do not display the banner.\n  -c --cfg=<path>         Path to the config.\n  -d --dry                Dry run.\n  -D --showdiff           Show a diff before overwriting.\n  -f --force              Do not ask user confirmation for anything.\n  -n --nodiff             Do not diff when installing.\n  -p --profile=<profile>  Specify the profile to use [default: MacBook-Pro.local].\n  -t --temp               Install to a temporary directory for review.\n  -V --verbose            Be verbose.\n"
          }
        ],
        "field": [
          {
            "id": "keys",
            "label": "Dotfile keys",
            "description": "Leave empty to install every dotfile of the profile.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "profile",
            "label": "Profile",
            "type": "string",
            "option": [
              "--profile",
              "-p"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "cfg",
            "label": "Config file",
            "type": "path",
            "option": [
              "--cfg",
              "-c"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "dry",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry",
              "-d"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "showdiff",
            "label": "Show diff before overwriting",
            "type": "boolean",
            "option": [
              "--showdiff",
              "-D"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "nodiff",
            "label": "Skip diff",
            "type": "boolean",
            "option": [
              "--nodiff",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "temp",
            "label": "Install to a temporary directory",
            "type": "boolean",
            "option": [
              "--temp",
              "-t"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "force",
            "label": "Do not ask for confirmation",
            "description": "Overwrites existing files without asking.",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-V"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "no_banner",
            "label": "No banner",
            "type": "boolean",
            "option": [
              "--no-banner",
              "-b"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "preview",
            "label": "Dry run",
            "set": {
              "dry": [
                true
              ]
            },
            "fields": [
              "keys",
              "profile",
              "cfg",
              "dry",
              "showdiff"
            ],
            "required": []
          },
          {
            "id": "install",
            "label": "Install",
            "fields": [
              "keys",
              "profile",
              "cfg",
              "showdiff",
              "nodiff",
              "temp",
              "force"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "keys",
              "profile",
              "cfg",
              "dry",
              "showdiff",
              "nodiff",
              "temp",
              "force"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "verbose",
              "no_banner"
            ]
          }
        ]
      },
      {
        "path": [
          "compare"
        ],
        "label": "Compare dotfiles",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://dotdrop.readthedocs.io/",
            "revision": "dotdrop 1.18.0 --help",
            "evidence": "  dotdrop compare   [-LVbz]       [-c <path>] [-p <profile>]\n                                  [-w <nb>] [-C <file>...] [-i <pattern>...]\n  -c --cfg=<path>         Path to the config.\n  -C --file=<path>        Path of dotfile to compare.\n  -i --ignore=<pattern>   Pattern to ignore.\n  -L --file-only          Do not show diff but only the files that differ.\n  -p --profile=<profile>  Specify the profile to use [default: MacBook-Pro.local].\n  -V --verbose            Be verbose.\n"
          }
        ],
        "field": [
          {
            "id": "profile",
            "label": "Profile",
            "type": "string",
            "option": [
              "--profile",
              "-p"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "cfg",
            "label": "Config file",
            "type": "path",
            "option": [
              "--cfg",
              "-c"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "file",
            "label": "Dotfile to compare",
            "type": "path",
            "option": [
              "--file",
              "-C"
            ],
            "multiple": true,
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "ignore",
            "label": "Ignore pattern",
            "type": "string",
            "option": [
              "--ignore",
              "-i"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "file_only",
            "label": "List differing files only",
            "type": "boolean",
            "option": [
              "--file-only",
              "-L"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-V"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "compare",
            "label": "Compare installed dotfiles",
            "fields": [
              "profile",
              "cfg",
              "file",
              "ignore",
              "file_only"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "profile",
              "cfg",
              "file",
              "ignore",
              "file_only",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "import"
        ],
        "label": "Import files into dotdrop",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://dotdrop.readthedocs.io/",
            "revision": "dotdrop 1.18.0 --help",
            "evidence": "  dotdrop import    [-Vbdfm]      [-c <path>] [-p <profile>]\n                                  [-i <pattern>...] [--dkey=<key>]\n                                  [--transr=<key>] [--transw=<key>]\n                                  [-l <link>] [-s <path>] <path>...\n  -c --cfg=<path>         Path to the config.\n  -d --dry                Dry run.\n  -i --ignore=<pattern>   Pattern to ignore.\n  -l --link=<link>        Link option (nolink|absolute|relative|link_children).\n  -m --preserve-mode      Insert a chmod entry in the dotfile with its mode.\n  -p --profile=<profile>  Specify the profile to use [default: MacBook-Pro.local].\n  -s --as=<path>          Import as a different path from actual path.\n"
          }
        ],
        "field": [
          {
            "id": "paths",
            "label": "Files to import",
            "type": "path",
            "position": 0,
            "multiple": true,
            "min": 1,
            "path": {
              "kind": "any",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "profile",
            "label": "Profile",
            "type": "string",
            "option": [
              "--profile",
              "-p"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "cfg",
            "label": "Config file",
            "type": "path",
            "option": [
              "--cfg",
              "-c"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "link",
            "label": "Link option",
            "type": "enum",
            "option": [
              "--link",
              "-l"
            ],
            "choices": [
              {
                "value": "nolink",
                "label": "No link"
              },
              {
                "value": "absolute",
                "label": "Absolute"
              },
              {
                "value": "relative",
                "label": "Relative"
              },
              {
                "value": "link_children",
                "label": "Link children"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "as",
            "label": "Import as a different path",
            "type": "string",
            "option": [
              "--as",
              "-s"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "ignore",
            "label": "Ignore pattern",
            "type": "string",
            "option": [
              "--ignore",
              "-i"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "preserve_mode",
            "label": "Preserve file mode",
            "type": "boolean",
            "option": [
              "--preserve-mode",
              "-m"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "dry",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry",
              "-d"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "import",
            "label": "Import files",
            "fields": [
              "paths",
              "profile",
              "cfg",
              "link",
              "preserve_mode",
              "dry"
            ],
            "required": [
              "paths"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "paths",
              "profile",
              "cfg",
              "link",
              "preserve_mode",
              "dry"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "as",
              "ignore"
            ]
          }
        ]
      }
    ]
  }
}
