id = "rclone" name = "rclone" homepage = "https://rclone.org" description = "A command-line program to sync files and directories to and from different cloud storage providers." icon = "SimpleIcons:rclone" executables = ["rclone"] [dotfiles] # No ordinary user config: rclone's only user-level file is the remote # configuration, and that file is credentials end to end (see `secret`). # Everything else rclone reads comes from flags or RCLONE_* environment # variables. paths = [] # https://rclone.org/docs/#cache-dir-string — "Windows %LocalAppData%\rclone, # macOS $HOME/Library/Caches/rclone, Unix $XDG_CACHE_HOME/rclone … else # $HOME/.cache/rclone", which is [cacheHome] spelled out platform by platform. # Chunk and VFS caches, never configuration. exclude = ["[cacheHome]/rclone/"] # https://rclone.org/docs/#config-string — the lookup order is # "%APPDATA%/rclone/rclone.conf (only on Windows), $XDG_CONFIG_HOME/rclone/ # rclone.conf, ~/.config/rclone/rclone.conf, ~/.rclone.conf", and # `rclone config file` prints the one in use (verified: it reports # ~/.config/rclone/rclone.conf on macOS). The first three of those are one # location, [configHome]; ~/.rclone.conf is the legacy home-directory dotfile. # # The whole file is a credential, not just some fields: the same page says it # "will typically contain login information, and should therefore have # restricted permissions", every remote stanza carries an OAuth `token`, an # access `key` or an obscured `pass` — and obscured is reversible, that is # what `rclone obscure` / `rclone reveal` are for. rclone also rewrites the # file to refresh those tokens, so it is not a read-only config either. secret = [ "[configHome]/rclone/rclone.conf", "~/.rclone.conf", ] [commands] format = 1 label = "rclone" description = "Common rclone transfers. Per-command flags are not available in the completion data, so only the paths are asked for." quality = "ai-draft" base = "fig:rclone" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rclone.ts" license = "MIT" [[commands.subcommand]] path = ["copy"] label = "Copy files" description = "Copy files from source to destination, skipping files already copied." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rclone.ts" license = "MIT" [[commands.subcommand.field]] id = "source" label = "Source" type = "string" position = 0 description = "remote:path or a local path" sources = ["fig"] [[commands.subcommand.field]] id = "dest" label = "Destination" type = "string" position = 1 description = "remote:path or a local path" sources = ["fig"] [[commands.subcommand.task]] id = "copy" label = "Copy files" fields = ["source", "dest"] required = ["source", "dest"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["source", "dest"] [[commands.subcommand]] path = ["sync"] label = "Sync (make destination match source)" description = "Make destination identical to source, modifying the destination only. Deletes extra destination files." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rclone.ts" license = "MIT" [[commands.subcommand.field]] id = "source" label = "Source" type = "string" position = 0 description = "remote:path or a local path" sources = ["fig"] [[commands.subcommand.field]] id = "dest" label = "Destination" type = "string" position = 1 description = "remote:path or a local path" effect = "delete" sources = ["fig"] [[commands.subcommand.task]] id = "sync" label = "Sync (make destination match source)" fields = ["source", "dest"] required = ["source", "dest"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["source", "dest"] [[commands.subcommand]] path = ["lsf"] label = "List files" description = "List directories and objects in remote:path formatted for parsing." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rclone.ts" license = "MIT" [[commands.subcommand.field]] id = "path" label = "Remote path" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "recursive" label = "Recurse" type = "boolean" option = ["--recursive", "-R"] sources = ["fig"] [[commands.subcommand.field]] id = "dirs_only" label = "Directories only" type = "boolean" option = ["--dirs-only"] sources = ["fig"] [[commands.subcommand.field]] id = "files_only" label = "Files only" type = "boolean" option = ["--files-only"] sources = ["fig"] [[commands.subcommand.field]] id = "format" label = "Output format" type = "string" option = ["--format", "-F"] description = "Letters such as p (path), s (size), t (time), h (hash)." sources = ["fig"] [[commands.subcommand.field]] id = "separator" label = "Separator" type = "string" option = ["--separator", "-s"] sources = ["fig"] [[commands.subcommand.task]] id = "list" label = "List" fields = ["path", "recursive"] required = ["path"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "recursive", "dirs_only", "files_only"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["format", "separator"]