# salt.modules.cabal

## Manage and query Cabal packages

New in version 2015.8.0.

salt.modules.cabal.install(pkg=None, pkgs=None, user=None, install_global=False, env=None)

  Install a cabal package.

  pkg

    A package name in format accepted by cabal-install. See: https://wiki.haskell.org/Cabal-Install

  pkgs

    A list of packages names in same format as `pkg`

  user

    The user to run cabal install with

  install_global

    Install package globally instead of locally

  env

    Environment variables to set when invoking cabal. Uses the same `env` format as the `cmd.run` execution function

  CLI Example:

      salt '*' cabal.install shellcheck
      salt '*' cabal.install shellcheck-0.3.5

salt.modules.cabal.list_(pkg=None, user=None, installed=False, env=None)

  List packages matching a search string.

  pkg

    Search string for matching package names

  user

    The user to run cabal list with

  installed

    If True, only return installed packages.

  env

    Environment variables to set when invoking cabal. Uses the same `env` format as the `cmd.run` execution function

  CLI Example:

      salt '*' cabal.list
      salt '*' cabal.list ShellCheck

salt.modules.cabal.uninstall(pkg, user=None, env=None)

  Uninstall a cabal package.

  pkg

    The package to uninstall

  user

    The user to run ghc-pkg unregister with

  env

    Environment variables to set when invoking cabal. Uses the same `env` format as the `cmd.run` execution function

  CLI Example:

      salt '*' cabal.uninstall ShellCheck

salt.modules.cabal.update(user=None, env=None)

  Updates list of known packages.

  user

    The user to run cabal update with

  env

    Environment variables to set when invoking cabal. Uses the same `env` format as the `cmd.run` execution function.

  CLI Example:

      salt '*' cabal.update