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"] # The upstream usage and installation docs identify ~/.config/onedrive/config # as user configuration and refresh_token as the stored application key. # https://github.com/abraunegg/onedrive/blob/master/docs/usage.md # https://github.com/abraunegg/onedrive/blob/master/docs/install.md [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 } [[commands.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 onedrive [OPTION] --monitor --download-only Replicate the OneDrive online state locally, by only downloading changes from OneDrive. Do not upload local changes to OneDrive. --upload-only Replicate the locally configured sync_dir state to OneDrive, by only uploading local changes to OneDrive. Do not download changes from OneDrive. --dry-run Perform a trial sync with no changes made. Can ONLY be used with --synchronize. Will be ignored for --monitor --resync Forget the last saved state, perform a full sync --single-directory ARG Specify a single local directory within the OneDrive root to sync. --syncdir ARG Set the directory used to sync the files that are synced --skip-dot-files Skip dot files and folders from syncing --skip-symlinks Skip syncing of symlinks --confdir ARG Set the directory used to store the configuration files -v --verbose Print more details, useful for debugging. --monitor-interval ARG The number of seconds by which each sync operation is undertaken when idle under monitor mode --display-config Display what options the client will use as currently configured - no sync will be performed. --display-sync-status Display the sync status of the client - no sync will be performed. ''' [[commands.field]] id = "synchronize" label = "Synchronize once" type = "boolean" option = ["--synchronize"] sources = ["man"] [[commands.field]] id = "monitor" label = "Keep monitoring for changes" type = "boolean" option = ["--monitor"] sources = ["man"] [[commands.field]] id = "dry_run" label = "Dry run" description = "Only with Synchronize once." type = "boolean" option = ["--dry-run"] sources = ["man"] [[commands.field]] id = "download_only" label = "Download only" type = "boolean" option = ["--download-only"] sources = ["man"] [[commands.field]] id = "upload_only" label = "Upload only" type = "boolean" option = ["--upload-only"] sources = ["man"] [[commands.field]] id = "resync" label = "Full resync" description = "Forgets the last saved state and performs a full sync." type = "boolean" option = ["--resync"] sources = ["man"] [[commands.field]] id = "single_directory" label = "Only this directory" type = "string" option = ["--single-directory"] sources = ["man"] [[commands.field]] id = "syncdir" label = "Local sync directory" type = "path" option = ["--syncdir"] path = { kind = "directory", role = "input", must_exist = false } sources = ["man"] [[commands.field]] id = "confdir" label = "Configuration directory" type = "path" option = ["--confdir"] path = { kind = "directory", role = "input", must_exist = false } sources = ["man"] [[commands.field]] id = "skip_dot_files" label = "Skip dot files" type = "boolean" option = ["--skip-dot-files"] sources = ["man"] [[commands.field]] id = "skip_symlinks" label = "Skip symlinks" type = "boolean" option = ["--skip-symlinks"] sources = ["man"] [[commands.field]] id = "monitor_interval" label = "Monitor interval (seconds)" type = "integer" option = ["--monitor-interval"] sources = ["man"] [[commands.field]] id = "verbose" label = "Verbosity" type = "count" option = ["--verbose", "-v"] sources = ["man"] [[commands.field]] id = "display_config" label = "Show configuration" type = "boolean" option = ["--display-config"] sources = ["man"] [[commands.field]] id = "display_sync_status" label = "Show sync status" type = "boolean" option = ["--display-sync-status"] sources = ["man"] [[commands.task]] id = "sync" label = "Sync now" fields = ["synchronize", "verbose", "single_directory", "download_only", "upload_only"] required = ["synchronize"] set = { synchronize = [true] } [[commands.task]] id = "preview" label = "Preview a sync" fields = ["synchronize", "dry_run", "verbose"] required = ["synchronize", "dry_run"] set = { synchronize = [true], dry_run = [true] } [[commands.task]] id = "monitor" label = "Monitor continuously" fields = ["monitor", "monitor_interval", "verbose"] required = ["monitor"] set = { monitor = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["synchronize", "monitor", "dry_run", "download_only", "upload_only", "single_directory", "verbose"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["resync", "syncdir", "confdir", "skip_dot_files", "skip_symlinks", "monitor_interval", "display_config", "display_sync_status"]