{
  "description": "Create, mount and unmount JuiceFS volumes. Metadata, cache, FUSE tuning, gateway, sync and the other tools are left out.",
  "name": "juicefs",
  "subcommands": [
    {
      "name": "format",
      "description": "Format a file system on a metadata engine. Credentials passed as flags show up in shell history; the ACCESS_KEY and SECRET_KEY environment variables are safer and not covered here.",
      "options": [
        {
          "names": [
            "--storage"
          ],
          "description": "Object storage type",
          "args": {
            "name": "storage",
            "isOptional": false,
            "suggestions": [
              {
                "name": "file",
                "description": "Local files"
              },
              {
                "name": "s3",
                "description": "S3"
              },
              {
                "name": "gs",
                "description": "Google Cloud Storage"
              },
              {
                "name": "oss",
                "description": "Aliyun OSS"
              },
              {
                "name": "cos",
                "description": "Tencent COS"
              }
            ]
          }
        },
        {
          "names": [
            "--bucket"
          ],
          "description": "Bucket URL or directory",
          "args": {
            "name": "bucket",
            "isOptional": false
          }
        },
        {
          "names": [
            "--compress"
          ],
          "description": "Compression",
          "args": {
            "name": "compress",
            "isOptional": false,
            "suggestions": [
              {
                "name": "none",
                "description": "None"
              },
              {
                "name": "lz4",
                "description": "lz4"
              },
              {
                "name": "zstd",
                "description": "zstd"
              }
            ]
          }
        },
        {
          "names": [
            "--capacity"
          ],
          "description": "Capacity limit (GiB)",
          "args": {
            "name": "capacity",
            "isOptional": false
          }
        },
        {
          "names": [
            "--inodes"
          ],
          "description": "Inode limit",
          "args": {
            "name": "inodes",
            "isOptional": false
          }
        },
        {
          "names": [
            "--trash-days"
          ],
          "description": "0 disables the trash.",
          "args": {
            "name": "trash_days",
            "description": "0 disables the trash.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--force"
          ],
          "description": "Overwrite existing format",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "meta_url",
          "description": "For example redis://localhost or sqlite3://myjfs.db.",
          "isOptional": true
        },
        {
          "name": "name",
          "isOptional": true
        }
      ]
    },
    {
      "name": "mount",
      "description": "Mount a formatted volume. Cache, metadata and FUSE tuning options are left out.",
      "options": [
        {
          "names": [
            "--background",
            "-d"
          ],
          "description": "Run in background"
        },
        {
          "names": [
            "--read-only"
          ],
          "description": "Read-only"
        },
        {
          "names": [
            "--writeback"
          ],
          "description": "Faster writes at the risk of losing objects."
        },
        {
          "names": [
            "--subdir"
          ],
          "description": "Sub-directory as root",
          "args": {
            "name": "subdir",
            "isOptional": false
          }
        },
        {
          "names": [
            "--log"
          ],
          "description": "Log file (background)",
          "args": {
            "name": "log",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--force"
          ],
          "description": "Force mount",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "meta_url",
          "isOptional": true
        },
        {
          "name": "mountpoint",
          "isOptional": true,
          "template": "folders"
        }
      ]
    },
    {
      "name": "umount",
      "description": "Unmount a JuiceFS mount point.",
      "options": [
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Force unmount a busy mount",
          "isDangerous": true
        },
        {
          "names": [
            "--flush"
          ],
          "description": "Flush staged chunks first"
        }
      ],
      "args": [
        {
          "name": "mountpoint",
          "isOptional": true,
          "template": "folders"
        }
      ]
    }
  ]
}
