{
  "id": "unison",
  "name": "Unison",
  "homepage": "https://github.com/bcpierce00/unison",
  "description": "A file-synchronization tool for OS X, Unix, and Windows.",
  "executables": [
    "unison"
  ],
  "dotfiles": {
    "paths": [],
    "exclude": [],
    "secret": [
      "~/.unison/*.prf"
    ],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Synchronize two roots",
    "description": "Synchronize two replicas (paths or ssh:// URIs) with Unison. Per-file preferences, backups, ignore lists and profiles are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "manual",
        "url": "https://manpages.debian.org/unstable/unison/unison.1.en.html",
        "revision": "debian unstable",
        "evidence": "All Unison options are long, starting with one dash (`-') only.\n-auto\nautomatically accept default (nonconflicting) actions\n-batch\nbatch mode: ask no questions at all\n-group\nsynchronize group attributes\n-owner\nsynchronize owner\n-path xxx\npath to synchronize\n-silent\nprint nothing except error messages\n-times\nsynchronize modification times\n-prefer\nchoose this replica's version for conflicting changes\n-ignore\nadd a pattern to the ignore list\n-fat\nuse appropriate options for FAT filesystems\nThe two roots can be specified using an URI or a path.\n"
      }
    ],
    "field": [
      {
        "id": "root1",
        "label": "First root",
        "type": "string",
        "position": 0,
        "sources": [
          "help"
        ]
      },
      {
        "id": "root2",
        "label": "Second root",
        "type": "string",
        "position": 1,
        "sources": [
          "help"
        ]
      },
      {
        "id": "batch",
        "label": "Batch mode (no questions)",
        "type": "boolean",
        "option": [
          "-batch"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "auto",
        "label": "Accept non-conflicting actions",
        "type": "boolean",
        "option": [
          "-auto"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "prefer",
        "label": "Prefer replica on conflict",
        "description": "A root, or a keyword such as newer.",
        "type": "string",
        "option": [
          "-prefer"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "path",
        "label": "Only this path",
        "type": "string",
        "option": [
          "-path"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "ignore",
        "label": "Ignore pattern",
        "type": "string",
        "option": [
          "-ignore"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "times",
        "label": "Sync modification times",
        "type": "boolean",
        "option": [
          "-times"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "silent",
        "label": "Silent",
        "type": "boolean",
        "option": [
          "-silent"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "fat",
        "label": "FAT filesystem options",
        "type": "boolean",
        "option": [
          "-fat"
        ],
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "interactive",
        "label": "Interactive sync",
        "fields": [
          "root1",
          "root2",
          "times"
        ],
        "required": [
          "root1",
          "root2"
        ]
      },
      {
        "id": "unattended",
        "label": "Unattended sync",
        "fields": [
          "root1",
          "root2",
          "batch",
          "prefer",
          "times"
        ],
        "required": [
          "root1",
          "root2"
        ],
        "set": {
          "batch": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "root1",
          "root2",
          "batch",
          "auto",
          "prefer",
          "times"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "path",
          "ignore",
          "silent",
          "fat"
        ]
      }
    ]
  }
}
