function cabal_sandbox_info() { cabal_files=(*.cabal(N)) if [ $#cabal_files -gt 0 ]; then if [ -f cabal.sandbox.config ]; then echo "%{$fg[green]%}sandboxed%{$reset_color%}" else echo "%{$fg[red]%}not sandboxed%{$reset_color%}" fi fi } function _cabal_commands() { local ret=1 state _arguments ':subcommand:->subcommand' && ret=0 case $state in subcommand) subcommands=( "bench:Run the benchmark, if any (configure with UserHooks)" "build:Compile all targets or specific target." "check:Check the package for common mistakes" "clean:Clean up after a build" "copy:Copy the files into the install locations" "configure:Prepare to build the package" "exec:Run a command with the cabal environment" "fetch:Downloads packages for later installation" "freeze:Freeze dependencies." "get:Gets a package's source code" "haddock:Generate Haddock HTML documentation" "help:Help about commands" "hscolour:Generate HsColour colourised code, in HTML format" "info:Display detailed information about a particular package" "init:Interactively create a .cabal file" "install:Installs a list of packages" "list:List packages matching a search string" "register:Register this package with the compiler" "repl:Open an interpreter session for the given target" "report:Upload build reports to a remote server" "run:Runs the compiled executable" "sandbox:Create/modify/delete a sandbox" "sdist:Generate a source distribution file (.tar.gz)" "test:Run the test suite, if any (configure with UserHooks)" "unpack:Unpacks packages for user inspection" "update:Updates list of known packages" "upload:Uploads source packages to Hackage" ) _describe -t subcommands 'cabal subcommands' subcommands && ret=0 esac return ret } compdef _cabal_commands cabal function _cab_commands() { local ret=1 state _arguments ':subcommand:->subcommand' && ret=0 case $state in subcommand) subcommands=( "sync:Fetch the latest package index" "install:Install packages" "uninstall:Uninstall packages" "installed:List installed packages" "configure:Configure a cabal package" "build:Build a cabal package" "clean:Clean up a build directory" "outdated:Display outdated packages" "info:Display information of a package" "sdist:Make tar.gz for source distribution" "upload:Uploading tar.gz to HackageDB" "get:Untar a package in the current directory" "deps:Show dependencies of this package" "revdeps:Show reverse dependencies of this package" "check:Check consistency of packages" "genpaths:Generate Paths_<pkg>.hs" "search:Search available packages by package name" "add:Add a source directory" "test:Run tests" "bench:Run benchmarks" "doc:Generate manuals" "ghci:Run GHCi (with a sandbox)" "init:Initialize a sandbox" "help:Display the help message of the command" ) _describe -t subcommands 'cab subcommands' subcommands && ret=0 esac return ret } command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab }