id = "dotdrop" name = "dotdrop" homepage = "https://dotdrop.readthedocs.io/" description = "Save your dotfiles once, deploy them everywhere." executables = ["dotdrop"] [dotfiles] # The official configuration-file documentation lists the XDG config # directory (default ~/.config/dotdrop/) as a search location for config.yaml. # Repository-local config files are intentionally not listed: their location is # chosen by the user and is not a home-level default. # https://dotdrop.readthedocs.io/en/latest/config/config-file/ paths = ["[configHome]/dotdrop/config.yaml"] secret = [] [commands] format = 1 label = "Dotdrop" description = "Manage dotfiles with dotdrop: install, compare, import and update. Remove, uninstall, detail and the listing commands are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.subcommand]] path = ["install"] label = "Install dotfiles" [[commands.subcommand.source]] id = "help" kind = "help" url = "https://dotdrop.readthedocs.io/" revision = "dotdrop 1.18.0 --help" evidence = """ dotdrop install [-VbtfndDaWR] [--prompt] [--no-prompt] [-c ] [-p ] [-w ] [...] -b --no-banner Do not display the banner. -c --cfg= Path to the config. -d --dry Dry run. -D --showdiff Show a diff before overwriting. -f --force Do not ask user confirmation for anything. -n --nodiff Do not diff when installing. -p --profile= Specify the profile to use [default: MacBook-Pro.local]. -t --temp Install to a temporary directory for review. -V --verbose Be verbose. """ [[commands.subcommand.field]] id = "keys" label = "Dotfile keys" description = "Leave empty to install every dotfile of the profile." type = "string" position = 0 multiple = true sources = ["help"] [[commands.subcommand.field]] id = "profile" label = "Profile" type = "string" option = ["--profile", "-p"] sources = ["help"] [[commands.subcommand.field]] id = "cfg" label = "Config file" type = "path" option = ["--cfg", "-c"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "dry" label = "Dry run" type = "boolean" option = ["--dry", "-d"] sources = ["help"] [[commands.subcommand.field]] id = "showdiff" label = "Show diff before overwriting" type = "boolean" option = ["--showdiff", "-D"] sources = ["help"] [[commands.subcommand.field]] id = "nodiff" label = "Skip diff" type = "boolean" option = ["--nodiff", "-n"] sources = ["help"] [[commands.subcommand.field]] id = "temp" label = "Install to a temporary directory" type = "boolean" option = ["--temp", "-t"] sources = ["help"] [[commands.subcommand.field]] id = "force" label = "Do not ask for confirmation" description = "Overwrites existing files without asking." type = "boolean" option = ["--force", "-f"] effect = "overwrite" sources = ["help"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-V"] sources = ["help"] [[commands.subcommand.field]] id = "no_banner" label = "No banner" type = "boolean" option = ["--no-banner", "-b"] sources = ["help"] [[commands.subcommand.task]] id = "preview" label = "Dry run" set = { dry = [true] } fields = ["keys", "profile", "cfg", "dry", "showdiff"] required = [] [[commands.subcommand.task]] id = "install" label = "Install" fields = ["keys", "profile", "cfg", "showdiff", "nodiff", "temp", "force"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["keys", "profile", "cfg", "dry", "showdiff", "nodiff", "temp", "force"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["verbose", "no_banner"] [[commands.subcommand]] path = ["compare"] label = "Compare dotfiles" [[commands.subcommand.source]] id = "help" kind = "help" url = "https://dotdrop.readthedocs.io/" revision = "dotdrop 1.18.0 --help" evidence = """ dotdrop compare [-LVbz] [-c ] [-p ] [-w ] [-C ...] [-i ...] -c --cfg= Path to the config. -C --file= Path of dotfile to compare. -i --ignore= Pattern to ignore. -L --file-only Do not show diff but only the files that differ. -p --profile= Specify the profile to use [default: MacBook-Pro.local]. -V --verbose Be verbose. """ [[commands.subcommand.field]] id = "profile" label = "Profile" type = "string" option = ["--profile", "-p"] sources = ["help"] [[commands.subcommand.field]] id = "cfg" label = "Config file" type = "path" option = ["--cfg", "-c"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "file" label = "Dotfile to compare" type = "path" option = ["--file", "-C"] multiple = true path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "ignore" label = "Ignore pattern" type = "string" option = ["--ignore", "-i"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "file_only" label = "List differing files only" type = "boolean" option = ["--file-only", "-L"] sources = ["help"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-V"] sources = ["help"] [[commands.subcommand.task]] id = "compare" label = "Compare installed dotfiles" fields = ["profile", "cfg", "file", "ignore", "file_only"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["profile", "cfg", "file", "ignore", "file_only", "verbose"] [[commands.subcommand]] path = ["import"] label = "Import files into dotdrop" [[commands.subcommand.source]] id = "help" kind = "help" url = "https://dotdrop.readthedocs.io/" revision = "dotdrop 1.18.0 --help" evidence = """ dotdrop import [-Vbdfm] [-c ] [-p ] [-i ...] [--dkey=] [--transr=] [--transw=] [-l ] [-s ] ... -c --cfg= Path to the config. -d --dry Dry run. -i --ignore= Pattern to ignore. -l --link= Link option (nolink|absolute|relative|link_children). -m --preserve-mode Insert a chmod entry in the dotfile with its mode. -p --profile= Specify the profile to use [default: MacBook-Pro.local]. -s --as= Import as a different path from actual path. """ [[commands.subcommand.field]] id = "paths" label = "Files to import" type = "path" position = 0 multiple = true min = 1 path = { kind = "any", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "profile" label = "Profile" type = "string" option = ["--profile", "-p"] sources = ["help"] [[commands.subcommand.field]] id = "cfg" label = "Config file" type = "path" option = ["--cfg", "-c"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "link" label = "Link option" type = "enum" option = ["--link", "-l"] choices = [{ value = "nolink", label = "No link" }, { value = "absolute", label = "Absolute" }, { value = "relative", label = "Relative" }, { value = "link_children", label = "Link children" }] sources = ["help"] [[commands.subcommand.field]] id = "as" label = "Import as a different path" type = "string" option = ["--as", "-s"] sources = ["help"] [[commands.subcommand.field]] id = "ignore" label = "Ignore pattern" type = "string" option = ["--ignore", "-i"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "preserve_mode" label = "Preserve file mode" type = "boolean" option = ["--preserve-mode", "-m"] sources = ["help"] [[commands.subcommand.field]] id = "dry" label = "Dry run" type = "boolean" option = ["--dry", "-d"] sources = ["help"] [[commands.subcommand.task]] id = "import" label = "Import files" fields = ["paths", "profile", "cfg", "link", "preserve_mode", "dry"] required = ["paths"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["paths", "profile", "cfg", "link", "preserve_mode", "dry"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["as", "ignore"]