3ba10ad0a2
cab is a wrapper for ghc-pkg and cabal that provides some nice features like listing outdated packages. See https://hackage.haskell.org/package/cab for more details on the cab program.
88 lines
3.2 KiB
Bash
88 lines
3.2 KiB
Bash
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:Make this package ready for installation"
|
|
"check:Check the package for common mistakes"
|
|
"clean:Clean up after a build"
|
|
"copy:Copy teh files into the install locations"
|
|
"configure:Prepare to build the package"
|
|
"fetch:Downloads packages for later installation"
|
|
"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"
|
|
"report:Upload build reports to a remote server"
|
|
"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 }
|