# # Completions for the dub command # # # Subcommands # # Package creation complete -c dub -n '__fish_use_subcommand' -x -a init -d 'Initializes an empty package skeleton' # Build, test, and run complete -c dub -n '__fish_use_subcommand' -x -a run -d 'Builds and runs a package' complete -c dub -n '__fish_use_subcommand' -x -a build -d 'Builds a package' complete -c dub -n '__fish_use_subcommand' -x -a test -d 'Executes the tests of the selected package' complete -c dub -n '__fish_use_subcommand' -x -a generate -d 'Generates project files using the specified generator' complete -c dub -n '__fish_use_subcommand' -x -a describe -d 'Prints a JSON description of the project and its dependencies' complete -c dub -n '__fish_use_subcommand' -x -a clean -d 'Removes intermediate build files and cached build results' complete -c dub -n '__fish_use_subcommand' -x -a dustmite -d 'Create reduced test cases for build errors' # Package management complete -c dub -n '__fish_use_subcommand' -x -a fetch -d 'Manually retrieves and caches a package' complete -c dub -n '__fish_use_subcommand' -x -a remove -d 'Removes a cached package' complete -c dub -n '__fish_use_subcommand' -x -a upgrade -d 'Forces an upgrade of all dependencies' complete -c dub -n '__fish_use_subcommand' -x -a add-path -d 'Adds a default package search path' complete -c dub -n '__fish_use_subcommand' -x -a remove-path -d 'Removes a package search path' complete -c dub -n '__fish_use_subcommand' -x -a add-local -d 'Adds a local package directory' complete -c dub -n '__fish_use_subcommand' -x -a remove-local -d 'Removes a local package directory' complete -c dub -n '__fish_use_subcommand' -x -a list -d 'Prints a list of all local packages dub is aware of' complete -c dub -n '__fish_use_subcommand' -x -a add-override -d 'Adds a new package override' complete -c dub -n '__fish_use_subcommand' -x -a remove-override -d 'Removes an existing package override' complete -c dub -n '__fish_use_subcommand' -x -a list-overrides -d 'Prints a list of all local package overrides' complete -c dub -n '__fish_use_subcommand' -x -a clean-caches -d 'Removes cached metadata' # # Subcommand options # for cmd in run build complete -c dub -n "contains '$cmd' (commandline -poc)" -l rdmd -d "Use rdmd" end for cmd in run build test complete -c dub -n "contains '$cmd' (commandline -poc)" -s f -l force -d "Force recompilation" end for cmd in run complete -c dub -n "contains '$cmd' (commandline -poc)" -l temp-build -d "Build in temp folder" end for cmd in run build test generate describe dustmite complete -c dub -n "contains '$cmd' (commandline -poc)" -s c -l config -r -d "Build configuration" complete -c dub -n "contains '$cmd' (commandline -poc)" -s a -l arch -r -d "Force architecture" complete -c dub -n "contains '$cmd' (commandline -poc)" -s d -l debug -r -d "Debug identifier" complete -c dub -n "contains '$cmd' (commandline -poc)" -l nodeps -d "No dependency check" complete -c dub -n "contains '$cmd' (commandline -poc)" -s b -l build -u -x -d "Build type" -a "debug plain release release-debug release-nobounds unittest profile profile-gc docs ddox cov cov-ctfe unittest-cov unittest-cov-ctfe syntax" complete -c dub -n "contains '$cmd' (commandline -poc)" -l build-mode -x -d "How compiler & linker are invoked" -a "separate allAtOnce singleFile" complete -c dub -n "contains '$cmd' (commandline -poc)" -l compiler -x -d "Compiler binary" -a "dmd gdc ldc gdmd ldmd" end for cmd in run build test generate describe dustmite fetch remove upgrade complete -c dub -n "contains '$cmd' (commandline -poc)" -l force-remove -x -d "Force deletion" end for cmd in run build dustmite complete -c dub -n "contains '$cmd' (commandline -poc)" -l combined -d "Build project in single compiler run" end for cmd in run build test generate complete -c dub -n "contains '$cmd' (commandline -poc)" -l print-builds -d "Print list of build types" end for cmd in run build generate complete -c dub -n "contains '$cmd' (commandline -poc)" -l print-configs -d "Print list of configurations" complete -c dub -n "contains '$cmd' (commandline -poc)" -l print-platform -d "Print build platform identifiers" end for cmd in build dustmite fetch remove complete -c dub -n "contains '$cmd' (commandline -poc)" -x -d "Package" -a '(dub list | awk \'/^[[:space:]]+/ { print $1 }\' | cut -f 3 -d " ")' end for cmd in clean complete -c dub -n "contains '$cmd' (commandline -poc)" -l all-packages -d "Clean all known packages" end for cmd in dustmite complete -c dub -n "contains '$cmd' (commandline -poc)" -l compiler-status -x -d "Expected compiler status code" complete -c dub -n "contains '$cmd' (commandline -poc)" -l compiler-regex -x -d "Compiler output regular expression" complete -c dub -n "contains '$cmd' (commandline -poc)" -l linker-status -x -d "Expected linker status code" complete -c dub -n "contains '$cmd' (commandline -poc)" -l linker-regex -x -d "Linker output regular expression" complete -c dub -n "contains '$cmd' (commandline -poc)" -l program-status -x -d "Expected program status code" complete -c dub -n "contains '$cmd' (commandline -poc)" -l program-regex -x -d "Program output regular expression" complete -c dub -n "contains '$cmd' (commandline -poc)" -l test-package -x -d "Perform a test run" end for cmd in fetch remove complete -c dub -n "contains '$cmd' (commandline -poc)" -l version -r -d "Version to use" complete -c dub -n "contains '$cmd' (commandline -poc)" -l system -d "Deprecated" complete -c dub -n "contains '$cmd' (commandline -poc)" -l local -d "Deprecated" end for cmd in upgrade complete -c dub -n "contains '$cmd' (commandline -poc)" -l prerelease -d "Use latest pre-release version" complete -c dub -n "contains '$cmd' (commandline -poc)" -l verify -d "Update if successful build" complete -c dub -n "contains '$cmd' (commandline -poc)" -l missing-only -d "Update dependencies without a selected version" end for cmd in add-path remove-path add-local remove-local add-override remove-override complete -c dub -n "contains '$cmd' (commandline -poc)" -l system -d "System-wide" end # Common options complete -c dub -s h -l help -d "Display help" complete -c dub -l root -r -d "Path to operate in" complete -c dub -l registry -r -d "Use DUB registry URL" complete -c dub -l annotate -d "Just print actions" complete -c dub -s v -l verbose -d "Print diagnostic output" complete -c dub -l vverbose -d "Print debug output" complete -c dub -s q -l quiet -d "Only print warnings and errors" complete -c dub -l vquiet -d "Print no messages" complete -c dub -l cache -x -d "Use cache location" -a "local system user"