You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.5 KiB
93 lines
3.5 KiB
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 }
|
|
|