{
  "name": "ditto",
  "description": "Copy directory hierarchies, create and extract archives",
  "options": [
    {
      "names": [
        "--help"
      ],
      "description": "Show help for ditto"
    },
    {
      "names": [
        "-h"
      ],
      "description": "Print full usage"
    },
    {
      "names": [
        "-X"
      ],
      "description": "When copying one or more source directories, do not descend into directories that have a different device ID"
    },
    {
      "names": [
        "-c"
      ],
      "description": "Create an archive at the destination path"
    },
    {
      "names": [
        "-z"
      ],
      "description": "Create compressed CPIO archives, using gzip(1) compression"
    },
    {
      "names": [
        "-j"
      ],
      "description": "Create compressed CPIO archives, using bzip2(1) compression"
    },
    {
      "names": [
        "-v"
      ],
      "description": "Print a line of output to stderr for each source directory copied"
    },
    {
      "names": [
        "-V"
      ],
      "description": "Print a line of output to stderr for every file, symbolic link, and device copied"
    },
    {
      "names": [
        "-x"
      ],
      "description": "Extract the archives given as source arguments"
    },
    {
      "names": [
        "-k"
      ],
      "description": "Create or extract from a PKZip archive instead of the default CPIO"
    },
    {
      "names": [
        "--keepParent"
      ],
      "description": "When creating an archive, embed the parent directory name src in dst_archive"
    },
    {
      "names": [
        "--arch"
      ],
      "description": "Thin Universal binaries to the specified architecture.  If multiple --arch options are specified then the resulting destination file will contain each of the specified architectures (if they are prese",
      "takes_arg": true,
      "arg": {
        "name": "arch"
      }
    },
    {
      "names": [
        "--bom"
      ],
      "description": "Copy only files, links, devices, and directories that are present in the specified BOM",
      "takes_arg": true,
      "arg": {
        "name": "bom"
      }
    },
    {
      "names": [
        "-rsrc"
      ],
      "description": "Preserve resource forks and HFS meta-data.  ditto will store this data in Carbon-compatible ._ AppleDouble files on filesystems that do not natively support resource forks.  As of Mac OS X 10.4, --rsr"
    },
    {
      "names": [
        "--norsrc"
      ],
      "description": "Do not preserve resource forks and HFS meta-data.  If both --norsrc and --rsrc are passed, whichever is passed last will take precedence.  Both options override DITTONORSRC. Unless explicitly specifie"
    },
    {
      "names": [
        "--extattr"
      ],
      "description": "Preserve extended attributes (requires --rsrc). As of Mac OS X 10.5, --extattr is the default"
    },
    {
      "names": [
        "--noextattr"
      ],
      "description": "Do not preserve extended attributes (requires --norsrc)"
    },
    {
      "names": [
        "--qtn"
      ],
      "description": "Preserve quarantine information.  As of Mac OS X 10.5, --qtn is the default"
    },
    {
      "names": [
        "--noqtn"
      ],
      "description": "Do not preserve quarantine information"
    },
    {
      "names": [
        "--acl"
      ],
      "description": "Preserve Access Control Lists (ACLs).  As of Mac OS X 10.5, --acl is the default"
    },
    {
      "names": [
        "--noacl"
      ],
      "description": "Do not preserve ACLs"
    },
    {
      "names": [
        "--nocache"
      ],
      "description": "Do not perform copies using the Mac OS X Unified Buffer Cache. Files read and written will not be cached, although if the file is already present in the cache, the cached information will be used"
    },
    {
      "names": [
        "--hfsCompression"
      ],
      "description": "When copying files or extracting content from an archive, if the destination is an HFS+ volume that supports compression, all the content will be compressed if appropriate. This is only supported on M"
    },
    {
      "names": [
        "--nohfsCompression"
      ],
      "description": "Do not compress files with HFS+ compression when copying or extracting content from an archive unless the content is already compressed with HFS+ compression.  This flag is only supported on Mac OS X "
    },
    {
      "names": [
        "--preserveHFSCompression"
      ],
      "description": "When copying files to an HFS+ volume that supports compression, ditto will preserve the compression of any source files that were using HFS+ compression.  This flag is only supported on Mac OS X 10.6 "
    },
    {
      "names": [
        "--nopreserveHFSCompression"
      ],
      "description": "Do not preserve HFS+ compression when copying files that are already compressed with HFS+ compression. This is only supported on Mac OS X 10.6 or later"
    },
    {
      "names": [
        "--sequesterRsrc"
      ],
      "description": "When creating a PKZip archive, preserve resource forks and HFS meta-data in the subdirectory __MACOSX.  PKZip extraction will automatically find these resources"
    },
    {
      "names": [
        "--zlibCompressionLevel"
      ],
      "description": "Sets the compression level to use when creating a PKZip archive. The compression level can be set from 0 to 9, where 0 represents no compression, and 9 represents optimal (slowest) compression. By def",
      "takes_arg": true,
      "arg": {
        "name": "compression level"
      }
    },
    {
      "names": [
        "--password"
      ],
      "description": "When extracting a password-encrypted ZIP archive, you must specify --password to allow ditto to prompt for a password to use to extract the contents of the file. If this option is not provided, and a "
    }
  ],
  "args": [
    {
      "name": "source",
      "is_variadic": true,
      "template": "filepaths"
    },
    {
      "name": "dest",
      "template": "folders"
    }
  ]
}
