id = "cabal-install" name = "cabal-install" homepage = "https://github.com/haskell/cabal" description = "The command-line tool for the Cabal build system." executables = ["cabal"] [dotfiles] # Cabal's upstream project documentation calls ~/.config/cabal/config the # user-wide global configuration. Its remote-repo-cache defaults to # ~/.cabal/packages and is downloaded package-index state, not configuration. # https://github.com/haskell/cabal/blob/master/doc/cabal-project-description-file.rst#config-file-discovery # https://github.com/haskell/cabal/blob/master/doc/cabal-project-description-file.rst#remote-repo-cache paths = ["[configHome]/cabal/config"] exclude = ["~/.cabal/packages/"] secret = [] side_effect = false [commands] format = 1 label = "Cabal" description = "Common cabal-install jobs: build, run, test and update the package index. Configuration flags, constraints and project-file options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://raw.githubusercontent.com/haskell/cabal/HEAD/doc/cabal-commands.rst" revision = "HEAD 2026-10-27" evidence = """.. option:: --dry-run Do not download, build, or install anything, only print what would happen. .. option:: --only-configure Instead of performing a full build just run the configure step. Only accepted by the ``build`` command. .. option:: --only-dependencies --dependencies-only Install only the dependencies necessary to build the given packages. Not accepted by the ``repl`` command.""" [[commands.subcommand]] path = ["build"] label = "Build targets" description = "Build targets and their dependencies." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://raw.githubusercontent.com/haskell/cabal/HEAD/doc/cabal-commands.rst" revision = "HEAD 2026-10-27" evidence = """.. option:: --dry-run Do not download, build, or install anything, only print what would happen. .. option:: --only-configure Instead of performing a full build just run the configure step. Only accepted by the ``build`` command. .. option:: --only-dependencies --dependencies-only Install only the dependencies necessary to build the given packages. Not accepted by the ``repl`` command.""" [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["docs"] [[commands.subcommand.field]] id = "only_dependencies" label = "Dependencies only" type = "boolean" option = ["--only-dependencies"] sources = ["docs"] [[commands.subcommand.field]] id = "only_configure" label = "Configure only" type = "boolean" option = ["--only-configure"] sources = ["docs"] [[commands.subcommand.field]] id = "targets" label = "Targets" description = "Package, component, module or file targets; empty builds the package in the current directory." type = "string" position = 0 multiple = true sources = ["docs"] [[commands.subcommand.task]] id = "build" label = "Build" fields = ["targets"] required = [] [[commands.subcommand.task]] id = "deps" label = "Build dependencies only" fields = ["targets", "only_dependencies"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["targets", "dry_run", "only_dependencies", "only_configure"] [[commands.subcommand]] path = ["run"] label = "Run an executable" description = "Run an executable, test or benchmark target." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://raw.githubusercontent.com/haskell/cabal/HEAD/doc/cabal-commands.rst" revision = "HEAD 2026-10-27" evidence = """.. option:: --dry-run Do not download, build, or install anything, only print what would happen. .. option:: --only-configure Instead of performing a full build just run the configure step. Only accepted by the ``build`` command. .. option:: --only-dependencies --dependencies-only Install only the dependencies necessary to build the given packages. Not accepted by the ``repl`` command.""" [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["docs"] [[commands.subcommand.field]] id = "target" label = "Target" description = "Component, package or script path; may be empty if it identifies one executable." type = "string" position = 0 sources = ["docs"] [[commands.subcommand.task]] id = "run" label = "Run" fields = ["target"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["target", "dry_run"] [[commands.subcommand]] path = ["test"] label = "Run tests" description = "Build and run test suites." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://raw.githubusercontent.com/haskell/cabal/HEAD/doc/cabal-commands.rst" revision = "HEAD 2026-10-27" evidence = """.. option:: --dry-run Do not download, build, or install anything, only print what would happen. .. option:: --only-configure Instead of performing a full build just run the configure step. Only accepted by the ``build`` command. .. option:: --only-dependencies --dependencies-only Install only the dependencies necessary to build the given packages. Not accepted by the ``repl`` command.""" [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["docs"] [[commands.subcommand.field]] id = "targets" label = "Targets" description = "Test suite or package targets; empty tests the current package." type = "string" position = 0 multiple = true sources = ["docs"] [[commands.subcommand.task]] id = "test" label = "Test" fields = ["targets"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["targets", "dry_run"] [[commands.subcommand]] path = ["update"] label = "Update package index" description = "Update the package index from remote repositories." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://raw.githubusercontent.com/haskell/cabal/HEAD/doc/cabal-commands.rst" revision = "HEAD 2026-10-27" evidence = """.. option:: --dry-run Do not download, build, or install anything, only print what would happen. .. option:: --only-configure Instead of performing a full build just run the configure step. Only accepted by the ``build`` command. .. option:: --only-dependencies --dependencies-only Install only the dependencies necessary to build the given packages. Not accepted by the ``repl`` command.""" [[commands.subcommand.field]] id = "repos" label = "Repositories" description = "REPO or REPO,INDEX-STATE; empty updates all." type = "string" position = 0 multiple = true sources = ["docs"] [[commands.subcommand.task]] id = "update" label = "Update" fields = ["repos"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["repos"]