Parent directory

cabal.plugin.zsh

3544 bytes
 1function cabal_sandbox_info() {
 2    cabal_files=(*.cabal(N))
 3    if [ $#cabal_files -gt 0 ]; then
 4        if [ -f cabal.sandbox.config ]; then
 5            echo "%{$fg[green]%}sandboxed%{$reset_color%}"
 6        else
 7            echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
 8        fi
 9    fi
10}
11
12function _cabal_commands() {
13    local ret=1 state
14    _arguments ':subcommand:->subcommand' && ret=0
15
16    case $state in
17      subcommand)
18        subcommands=(
19          "bench:Run the benchmark, if any (configure with UserHooks)"
20          "build:Compile all targets or specific target."
21          "check:Check the package for common mistakes"
22          "clean:Clean up after a build"
23          "copy:Copy the files into the install locations"
24          "configure:Prepare to build the package"
25          "exec:Run a command with the cabal environment"
26          "fetch:Downloads packages for later installation"
27          "freeze:Freeze dependencies."
28          "get:Gets a package's source code"
29          "haddock:Generate Haddock HTML documentation"
30          "help:Help about commands"
31          "hscolour:Generate HsColour colourised code, in HTML format"
32          "info:Display detailed information about a particular package"
33          "init:Interactively create a .cabal file"
34          "install:Installs a list of packages"
35          "list:List packages matching a search string"
36          "register:Register this package with the compiler"
37          "repl:Open an interpreter session for the given target"
38          "report:Upload build reports to a remote server"
39          "run:Runs the compiled executable"
40          "sandbox:Create/modify/delete a sandbox"
41          "sdist:Generate a source distribution file (.tar.gz)"
42          "test:Run the test suite, if any (configure with UserHooks)"
43          "unpack:Unpacks packages for user inspection"
44          "update:Updates list of known packages"
45          "upload:Uploads source packages to Hackage"
46        )
47        _describe -t subcommands 'cabal subcommands' subcommands && ret=0
48    esac
49
50    return ret
51}
52
53compdef _cabal_commands cabal
54
55function _cab_commands() {
56    local ret=1 state
57    _arguments ':subcommand:->subcommand' && ret=0
58
59    case $state in
60      subcommand)
61        subcommands=(
62          "sync:Fetch the latest package index"
63          "install:Install packages"
64          "uninstall:Uninstall packages"
65          "installed:List installed packages"
66          "configure:Configure a cabal package"
67          "build:Build a cabal package"
68          "clean:Clean up a build directory"
69          "outdated:Display outdated packages"
70          "info:Display information of a package"
71          "sdist:Make tar.gz for source distribution"
72          "upload:Uploading tar.gz to HackageDB"
73          "get:Untar a package in the current directory"
74          "deps:Show dependencies of this package"
75          "revdeps:Show reverse dependencies of this package"
76          "check:Check consistency of packages"
77          "genpaths:Generate Paths_<pkg>.hs"
78          "search:Search available packages by package name"
79          "add:Add a source directory"
80          "test:Run tests"
81          "bench:Run benchmarks"
82          "doc:Generate manuals"
83          "ghci:Run GHCi (with a sandbox)"
84          "init:Initialize a sandbox"
85          "help:Display the help message of the command"
86        )
87        _describe -t subcommands 'cab subcommands' subcommands && ret=0
88    esac
89
90    return ret
91}
92
93command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab }