{
  "description": "Create, extract, list or test a dar backup. Pick one action; each takes the archive basename (slice number and .dar are appended by dar). Encryption, differential backups, isolation, hooks and remote repositories are left out.",
  "options": [
    {
      "names": [
        "-c",
        "--create"
      ],
      "description": "Create archive (basename)",
      "args": {
        "name": "create",
        "isOptional": false,
        "template": "filepaths"
      },
      "isDangerous": true
    },
    {
      "names": [
        "-x",
        "--extract"
      ],
      "description": "Extract archive (basename)",
      "args": {
        "name": "extract",
        "isOptional": false,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-l",
        "--list"
      ],
      "description": "List archive (basename)",
      "args": {
        "name": "list",
        "isOptional": false,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-t",
        "--test"
      ],
      "description": "Test archive (basename)",
      "args": {
        "name": "test",
        "isOptional": false,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--fs-root",
        "-R"
      ],
      "description": "Directory tree to back up, or where to restore.",
      "args": {
        "name": "fs_root",
        "description": "Directory tree to back up, or where to restore.",
        "isOptional": false,
        "template": "folders"
      }
    },
    {
      "names": [
        "--compression"
      ],
      "description": "algo, level, algo:level, e.g. gzip:6 or xz:9.",
      "args": {
        "name": "compression",
        "description": "algo, level, algo:level, e.g. gzip:6 or xz:9.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "gzip:6",
            "description": "gzip level 6"
          },
          {
            "name": "bzip2:2",
            "description": "bzip2 level 2"
          },
          {
            "name": "xz:9",
            "description": "xz level 9"
          },
          {
            "name": "lzo:6",
            "description": "lzo level 6"
          }
        ]
      },
      "separator": "="
    },
    {
      "names": [
        "--slice",
        "-s"
      ],
      "description": "Bytes, or with k, M, G suffix (e.g. 10k).",
      "args": {
        "name": "slice",
        "description": "Bytes, or with k, M, G suffix (e.g. 10k).",
        "isOptional": false
      }
    },
    {
      "names": [
        "--exclude",
        "-X"
      ],
      "description": "Exclude masks",
      "args": {
        "name": "exclude",
        "isOptional": false,
        "isVariadic": true
      },
      "isRepeatable": true
    },
    {
      "names": [
        "--include",
        "-I"
      ],
      "description": "Include masks",
      "args": {
        "name": "include",
        "isOptional": false,
        "isVariadic": true
      },
      "isRepeatable": true
    },
    {
      "names": [
        "--prune",
        "-P"
      ],
      "description": "Prune paths",
      "args": {
        "name": "prune",
        "isOptional": false,
        "isVariadic": true,
        "template": "filepaths"
      },
      "isRepeatable": true
    },
    {
      "names": [
        "--empty-dir",
        "-D"
      ],
      "description": "Keep empty directories for excluded ones"
    },
    {
      "names": [
        "--no-overwrite",
        "-n"
      ],
      "description": "Do not overwrite"
    },
    {
      "names": [
        "--dry-run",
        "-e"
      ],
      "description": "Dry run"
    },
    {
      "names": [
        "--noconf",
        "-N"
      ],
      "description": "Ignore ~/.darrc and /etc/darrc"
    },
    {
      "names": [
        "--verbose",
        "-v"
      ],
      "description": "Verbose"
    }
  ],
  "name": "dar"
}
