{
  "id": "onedrive-cli",
  "name": "OneDrive Client",
  "homepage": "https://github.com/abraunegg/onedrive",
  "description": "OneDrive Client for Linux.",
  "executables": [
    "onedrive"
  ],
  "platforms": [
    "linux"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/onedrive/config"
    ],
    "secret": [
      "[configHome]/onedrive/refresh_token"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Sync with OneDrive",
    "description": "Run a one-off synchronization or monitor mode, with the common sync filters. Authorization and one-shot file operations are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://manpages.debian.org/bookworm/onedrive/onedrive.1.en.html",
        "revision": "2.4.23-1",
        "evidence": "onedrive [OPTION] --synchronize\nonedrive [OPTION] --monitor\n--download-only\nReplicate the OneDrive online state locally, by only downloading changes from OneDrive. Do not upload local changes to OneDrive.\n--upload-only\nReplicate the locally configured sync_dir state to OneDrive, by only uploading local changes to OneDrive. Do not download changes from OneDrive.\n--dry-run\nPerform a trial sync with no changes made. Can ONLY be used with --synchronize. Will be ignored for --monitor\n--resync\nForget the last saved state, perform a full sync\n--single-directory ARG\nSpecify a single local directory within the OneDrive root to sync.\n--syncdir ARG\nSet the directory used to sync the files that are synced\n--skip-dot-files\nSkip dot files and folders from syncing\n--skip-symlinks\nSkip syncing of symlinks\n--confdir ARG\nSet the directory used to store the configuration files\n-v --verbose\nPrint more details, useful for debugging.\n--monitor-interval ARG\nThe number of seconds by which each sync operation is undertaken when idle under monitor mode\n--display-config\nDisplay what options the client will use as currently configured - no sync will be performed.\n--display-sync-status\nDisplay the sync status of the client - no sync will be performed.\n"
      }
    ],
    "field": [
      {
        "id": "synchronize",
        "label": "Synchronize once",
        "type": "boolean",
        "option": [
          "--synchronize"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "monitor",
        "label": "Keep monitoring for changes",
        "type": "boolean",
        "option": [
          "--monitor"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "dry_run",
        "label": "Dry run",
        "description": "Only with Synchronize once.",
        "type": "boolean",
        "option": [
          "--dry-run"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "download_only",
        "label": "Download only",
        "type": "boolean",
        "option": [
          "--download-only"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "upload_only",
        "label": "Upload only",
        "type": "boolean",
        "option": [
          "--upload-only"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "resync",
        "label": "Full resync",
        "description": "Forgets the last saved state and performs a full sync.",
        "type": "boolean",
        "option": [
          "--resync"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "single_directory",
        "label": "Only this directory",
        "type": "string",
        "option": [
          "--single-directory"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "syncdir",
        "label": "Local sync directory",
        "type": "path",
        "option": [
          "--syncdir"
        ],
        "path": {
          "kind": "directory",
          "role": "input",
          "must_exist": false
        },
        "sources": [
          "man"
        ]
      },
      {
        "id": "confdir",
        "label": "Configuration directory",
        "type": "path",
        "option": [
          "--confdir"
        ],
        "path": {
          "kind": "directory",
          "role": "input",
          "must_exist": false
        },
        "sources": [
          "man"
        ]
      },
      {
        "id": "skip_dot_files",
        "label": "Skip dot files",
        "type": "boolean",
        "option": [
          "--skip-dot-files"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "skip_symlinks",
        "label": "Skip symlinks",
        "type": "boolean",
        "option": [
          "--skip-symlinks"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "monitor_interval",
        "label": "Monitor interval (seconds)",
        "type": "integer",
        "option": [
          "--monitor-interval"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbosity",
        "type": "count",
        "option": [
          "--verbose",
          "-v"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "display_config",
        "label": "Show configuration",
        "type": "boolean",
        "option": [
          "--display-config"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "display_sync_status",
        "label": "Show sync status",
        "type": "boolean",
        "option": [
          "--display-sync-status"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "sync",
        "label": "Sync now",
        "fields": [
          "synchronize",
          "verbose",
          "single_directory",
          "download_only",
          "upload_only"
        ],
        "required": [
          "synchronize"
        ],
        "set": {
          "synchronize": [
            true
          ]
        }
      },
      {
        "id": "preview",
        "label": "Preview a sync",
        "fields": [
          "synchronize",
          "dry_run",
          "verbose"
        ],
        "required": [
          "synchronize",
          "dry_run"
        ],
        "set": {
          "synchronize": [
            true
          ],
          "dry_run": [
            true
          ]
        }
      },
      {
        "id": "monitor",
        "label": "Monitor continuously",
        "fields": [
          "monitor",
          "monitor_interval",
          "verbose"
        ],
        "required": [
          "monitor"
        ],
        "set": {
          "monitor": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "synchronize",
          "monitor",
          "dry_run",
          "download_only",
          "upload_only",
          "single_directory",
          "verbose"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "resync",
          "syncdir",
          "confdir",
          "skip_dot_files",
          "skip_symlinks",
          "monitor_interval",
          "display_config",
          "display_sync_status"
        ]
      }
    ]
  }
}
