id = "ddev" name = "DDEV" homepage = "https://ddev.com" description = "Docker-based local PHP+Node.js web development environments." # The project's own icon, the 180x180 apple-touch-icon on its homepage. icon = "https://ddev.com/favicon/apple-touch-icon.png" executables = ["ddev"] [dotfiles] # https://docs.ddev.com/en/stable/users/configuration/config/ — the global # configuration file is $HOME/.ddev/global_config.yaml, and the same directory # holds the custom commands and the homeadditions copied into every project's # web container. paths = [ "~/.ddev/global_config.yaml", "~/.ddev/commands/", "~/.ddev/homeadditions/", ] # Named so nobody widens paths to the whole directory: bin/ is where ddev # drops the helper binaries it downloads for this platform, and .update is the # stamp of the last update check. exclude = [ "~/.ddev/bin/", "~/.ddev/.update", ] # Nothing ddev writes here is wholly a credential. web_environment can carry # one — it is a list of opaque KEY=value strings injected into every project — # but the entries are indistinguishable from the timezone and locale settings # beside them, so no rule pretends to tell them apart. secret = [] # The two ports the router publishes on this host. They get changed on the # machine where something else already holds 80 and 443, and carrying that # change to a machine where the ports are free is how a project ends up # reachable at a URL the rest of the team does not use. The user picked the # numbers and would have to pick them again on a rebuild, so they are kept for # this host alone: backup. [[dotfiles.machine_lines]] file = "~/.ddev/global_config.yaml" match = { key_path = ["router_http_port", "router_https_port"] } scope = "backup" [commands] format = 1 label = "DDEV project tools" description = "Logs, database export/import and snapshots for the current DDEV project. Other subcommands are left out." quality = "ai-draft" base = "fig:ddev" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/ddev.ts" license = "MIT" [[commands.subcommand]] path = ["logs"] label = "Show logs" description = "Shows logs of a service of the current project." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/ddev.ts" license = "MIT" [[commands.subcommand.field]] id = "follow" label = "Follow" type = "boolean" option = ["--follow", "-f"] sources = ["fig"] [[commands.subcommand.field]] id = "service" label = "Service" type = "string" option = ["--service", "-s"] suggestions = [{ value = "web", label = "web" }, { value = "db", label = "db" }] sources = ["fig"] [[commands.subcommand.field]] id = "tail" label = "Tail lines" type = "integer" option = ["--tail"] sources = ["fig"] [[commands.subcommand.field]] id = "time" label = "Timestamps" type = "boolean" option = ["--time", "-t"] sources = ["fig"] [[commands.subcommand.task]] id = "follow" label = "Follow web logs" set = { follow = [true], service = ["web"] } fields = ["follow", "service", "time"] required = [] [[commands.subcommand.task]] id = "db" label = "Last db lines" set = { service = ["db"] } fields = ["service", "tail"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["follow", "service", "tail", "time"] [[commands.subcommand]] path = ["export-db"] label = "Export database" description = "Dumps the project database to a file or to stdout." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/ddev.ts" license = "MIT" [[commands.subcommand.field]] id = "file" label = "Output file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "output" } effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "gzip" label = "gzip" type = "boolean" option = ["--gzip", "-z"] sources = ["fig"] [[commands.subcommand.field]] id = "bzip2" label = "bzip2" type = "boolean" option = ["--bzip2"] sources = ["fig"] [[commands.subcommand.field]] id = "xz" label = "xz" type = "boolean" option = ["--xz"] sources = ["fig"] [[commands.subcommand.field]] id = "target_db" label = "Database" type = "string" option = ["--target-db", "-d"] sources = ["fig"] [[commands.subcommand.task]] id = "gz" label = "Export gzip file" set = { gzip = [true] } fields = ["file", "gzip"] required = ["file"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["file", "gzip", "bzip2", "xz", "target_db"] [[commands.subcommand]] path = ["import-db"] label = "Import database" description = "Imports a SQL dump or archive; drops the existing database first unless told not to." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/ddev.ts" license = "MIT" [[commands.subcommand.field]] id = "src" label = "Dump file" type = "path" option = ["--src", "-f"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "no_drop" label = "Do not drop database first" type = "boolean" option = ["--no-drop"] sources = ["fig"] [[commands.subcommand.field]] id = "target_db" label = "Database" type = "string" option = ["--target-db", "-d"] sources = ["fig"] [[commands.subcommand.field]] id = "progress" label = "Show progress" type = "boolean" option = ["--progress", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "extract_path" label = "Path inside archive" type = "string" option = ["--extract-path"] sources = ["fig"] [[commands.subcommand.task]] id = "import" label = "Import dump" fields = ["src", "progress", "target_db"] required = ["src"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["src", "no_drop", "target_db", "progress"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["extract_path"] [[commands.subcommand]] path = ["snapshot"] label = "Database snapshot" description = "Creates, lists or cleans up database snapshots." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/ddev.ts" license = "MIT" [[commands.subcommand.field]] id = "name" label = "Snapshot name" type = "string" option = ["--name", "-n"] sources = ["fig"] [[commands.subcommand.field]] id = "list" label = "List snapshots" type = "boolean" option = ["--list", "-l"] sources = ["fig"] [[commands.subcommand.field]] id = "cleanup" label = "Clean up snapshots" type = "boolean" option = ["--cleanup", "-C"] effect = "delete" sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "All projects" type = "boolean" option = ["--all", "-a"] sources = ["fig"] [[commands.subcommand.field]] id = "yes" label = "Skip confirmation" type = "boolean" option = ["--yes", "-y"] sources = ["fig"] [[commands.subcommand.task]] id = "create" label = "Create snapshot" fields = ["name", "all"] required = [] [[commands.subcommand.task]] id = "list" label = "List snapshots" set = { list = [true] } fields = ["list"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["name", "list", "cleanup", "all", "yes"]