id = "isync" name = "isync" homepage = "https://isync.sourceforge.io/" description = "isync is a command line application which synchronizes mailboxes." executables = ["mbsync"] [dotfiles] # The official mbsync manual documents $XDG_CONFIG_HOME/isyncrc (defaulting to # ~/.config/isyncrc) and the legacy ~/.mbsyncrc spelling. It documents Pass as # an inline IMAP password; PassCmd is a command and is not itself a credential. # https://manpages.debian.org/unstable/isync/mbsync.1.en.html paths = ["[configHome]/isyncrc", "~/.mbsyncrc"] secret = [] [[dotfiles.secret_paths]] file = ["[configHome]/isyncrc", "~/.mbsyncrc"] match = { prefix = ["Pass "] } [commands] format = 1 label = "Synchronize mailboxes" description = "Sync the chosen channels or groups, or list their mailboxes. Per-operation overrides (-C, -R, -X, --pull, --push and similar) and debug categories are not included." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://isync.sourceforge.io/mbsync.html" revision = "isync manual" evidence = """ mbsync [options ...] {{channel[:box[{,|\\n}...]]|group} ...|-a} -c, --config file -a, --all -l, --list -h, --help -y, --dry-run -e, --ext-exit -V, --verbose -q, --quiet """ [[commands.field]] id = "channels" label = "Channels or groups" description = "Channel (optionally channel:box) or group names from the config file. Ignored when 'all channels' is on." type = "string" position = 0 multiple = true sources = ["man"] [[commands.field]] id = "all" label = "All channels" type = "boolean" option = ["--all", "-a"] sources = ["man"] [[commands.field]] id = "config" label = "Config file" type = "path" path = { kind = "file", role = "input" } option = ["--config", "-c"] sources = ["man"] [[commands.field]] id = "list" label = "List mailboxes only" description = "Do not synchronize; list the mailboxes of the selected channels." type = "boolean" option = ["--list", "-l"] sources = ["man"] [[commands.field]] id = "dry_run" label = "Dry run" description = "Determine the operations but make no changes to mailboxes or state files." type = "boolean" option = ["--dry-run", "-y"] sources = ["man"] [[commands.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-V"] sources = ["man"] [[commands.field]] id = "quiet" label = "Quiet" description = "Suppress progress counters, notices and the summary." type = "boolean" option = ["--quiet", "-q"] sources = ["man"] [[commands.field]] id = "ext_exit" label = "Extended exit code" type = "boolean" option = ["--ext-exit", "-e"] sources = ["man"] [[commands.task]] id = "sync-all" label = "Sync all channels" set = { all = [true] } lock = ["all"] fields = ["all", "config", "verbose", "quiet"] required = [] [[commands.task]] id = "preview" label = "Preview a sync" set = { dry_run = [true], verbose = [true] } lock = ["dry_run"] fields = ["channels", "all", "config", "dry_run", "verbose"] required = [] [[commands.task]] id = "list" label = "List mailboxes" set = { list = [true] } lock = ["list"] fields = ["channels", "all", "config", "list"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["channels", "all", "config", "list", "dry_run"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["verbose", "quiet", "ext_exit"]