id = "isync"
name = "isync"
homepage = "https://isync.sourceforge.io/"
description = "isync is a command line application which synchronizes mailboxes."
executables = ["mbsync"]
[dotfiles]
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"]