id = "vdirsyncer"
name = "vdirsyncer"
homepage = "https://vdirsyncer.pimutils.org/"
description = "A command-line tool for synchronizing calendars and addressbooks between a variety of servers and the local filesystem."
executables = ["vdirsyncer"]
[dotfiles]
paths = ["~/.vdirsyncer/config", "~/.config/vdirsyncer/config"]
exclude = []
secret = []
side_effect = false
[[dotfiles.secret_paths]]
file = ["~/.vdirsyncer/config", "~/.config/vdirsyncer/config"]
match = { prefix = ["password"] }
[commands]
format = 1
label = "Run vdirsyncer"
description = "Run a vdirsyncer command for a pair. Use discover first for new collections. Config editing is left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "docs"
kind = "manual"
url = "https://manpages.debian.org/unstable/vdirsyncer/vdirsyncer.1.en.html"
revision = "vdirsyncer 0.21.0-1"
evidence = """
vdirsyncer discover contacts
vdirsyncer sync contacts
vdirsyncer metasync to synchronize the color property
vdirsyncer repair no longer changes "unsafe" UIDs
New global command line option --config, to specify an alternative
Use --verbosity=DEBUG when including output from vdirsyncer.
so you would use vdirsyncer sync doublecloud/mytest
"""
[[commands.field]]
id = "config"
label = "Config file"
type = "path"
option = ["--config"]
path = { kind = "file", role = "input" }
sources = ["docs"]
[[commands.field]]
id = "verbosity"
label = "Verbosity"
type = "string"
option = ["--verbosity"]
suggestions = [{ value = "DEBUG", label = "DEBUG" }]
sources = ["docs"]
[[commands.field]]
id = "command"
label = "Command"
type = "enum"
position = 0
choices = [{ value = "discover", label = "discover" }, { value = "sync", label = "sync" }, { value = "metasync", label = "metasync" }, { value = "repair", label = "repair" }]
sources = ["docs"]
[[commands.field]]
id = "pair"
label = "Pair or pair/collection"
type = "string"
position = 1
multiple = true
sources = ["docs"]
[[commands.task]]
id = "discover"
label = "Discover collections"
fields = ["command", "pair"]
required = ["command"]
set = { command = ["discover"] }
[[commands.task]]
id = "sync"
label = "Sync"
fields = ["command", "pair", "verbosity"]
required = ["command"]
set = { command = ["sync"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["command", "pair"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config", "verbosity"]