id = "offlineimap"
name = "OfflineIMAP"
homepage = "https://www.offlineimap.org"
description = "Read/sync your IMAP mailboxes."
icon = "https://www.offlineimap.org/assets/logo/offlineimap-scalable.svg"
executables = ["offlineimap"]
platforms = ["macos", "linux"]
[dotfiles]
paths = [
"~/.offlineimaprc",
"[configHome]/offlineimap/config",
]
exclude = ["~/.offlineimap/"]
secret = []
[[dotfiles.secret_paths]]
file = ["~/.offlineimaprc", "[configHome]/offlineimap/config"]
match = { prefix = ["remotepass", "remotepasseval"] }
[commands]
format = 1
label = "Sync mailboxes"
description = "Run OfflineIMAP for all or selected accounts and folders. Debug, profiling and delete-folder options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://github.com/OfflineIMAP/offlineimap/blob/master/docs/offlineimap.txt"
revision = "master"
evidence = '''
--dry-run::
Run in dry run mode.
--info::
Output information on the configured email repositories.
-1::
Limit multithreading operations and run solely a single-thread sync.
-a <account1[,account2[,...]]>::
Overrides the accounts section in the config file.
-c <path/to/configuration_file>::
Specifies a configuration file to use.
-l <path/to/file.log>::
Send logs to <file.log>.
-f <folder1[,folder1[,...]]>::
Only sync the specified folders.
-o::
Run only once.
-q::
Run only quick synchronizations.
-u <UI>::
Specifies an alternative user interface to use.
Possible interface choices are: quiet, basic, syslog, ttyui, blinkenlights, machineui.
'''
[[commands.field]]
id = "accounts"
label = "Accounts"
description = "Comma-separated account names; overrides the config file."
type = "string"
option = ["-a"]
sources = ["man"]
[[commands.field]]
id = "folders"
label = "Only these folders"
description = "Comma-separated remote folder names."
type = "string"
option = ["-f"]
sources = ["man"]
[[commands.field]]
id = "config"
label = "Configuration file"
type = "path"
option = ["-c"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["man"]
[[commands.field]]
id = "once"
label = "Run only once"
description = "Ignore autorefresh in the config."
type = "boolean"
option = ["-o"]
sources = ["man"]
[[commands.field]]
id = "quick"
label = "Quick sync"
description = "Skips flag updates on the IMAP server."
type = "boolean"
option = ["-q"]
sources = ["man"]
[[commands.field]]
id = "dry_run"
label = "Dry run"
type = "boolean"
option = ["--dry-run"]
sources = ["man"]
[[commands.field]]
id = "single_thread"
label = "Single thread"
type = "boolean"
option = ["-1"]
sources = ["man"]
[[commands.field]]
id = "ui"
label = "User interface"
type = "enum"
option = ["-u"]
choices = [
{ value = "quiet", label = "quiet" },
{ value = "basic", label = "basic" },
{ value = "syslog", label = "syslog" },
{ value = "ttyui", label = "ttyui" },
{ value = "blinkenlights", label = "blinkenlights" },
{ value = "machineui", label = "machineui" },
]
sources = ["man"]
[[commands.field]]
id = "logfile"
label = "Log file"
type = "path"
option = ["-l"]
path = { kind = "file", role = "output", must_exist = false }
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "info"
label = "Show repository info only"
type = "boolean"
option = ["--info"]
sources = ["man"]
[[commands.task]]
id = "sync_once"
label = "Sync once"
fields = ["accounts", "once", "quick", "config"]
required = []
set = { once = [true] }
[[commands.task]]
id = "preview"
label = "Preview (dry run)"
fields = ["accounts", "dry_run", "once", "config"]
required = ["dry_run"]
set = { dry_run = [true], once = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["accounts", "folders", "config", "once", "quick", "dry_run"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["single_thread", "ui", "logfile", "info"]