stack.plugin.zsh 1.85 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function stack_sandbox_info() {
    stack_files=(*.stack(N))
    if [ $#stack_files -gt 0 ]; then
        if [ -f stack.sandbox.config ]; then
            echo "%{$fg[green]%}sandboxed%{$reset_color%}"
        else
            echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
        fi
    fi
}

function _stack_commands() {
    local ret=1 state
    _arguments ':subcommand:->subcommand' && ret=0

    case $state in
      subcommand)
        subcommands=(
          "build:Build the project(s) in this directory/configuration"
          "install:Build executables and install to a user path"
          "test:Build and test the project(s) in this directory/configuration"
          "bench:Build and benchmark the project(s) in this directory/configuration"
          "haddock:Generate haddocks for the project(s) in this directory/configuration"
          "new:Create a brand new project"
          "init:Initialize a stack project based on one or more stack packages"
          "solver:Use a dependency solver to try and determine missing extra-deps"
          "setup:Get the appropriate ghc for your project"
          "path:Print out handy path information"
          "unpack:Unpack one or more packages locally"
          "update:Update the package index"
          "upgrade:Upgrade to the latest stack (experimental)"
          "upload:Upload a package to Hackage"
          "dot:Visualize your project's dependency graph using Graphviz dot"
          "exec:Execute a command"
          "ghc:Run ghc"
          "ghci:Run ghci in the context of project(s)"
          "ide:Run ide-backend-client with the correct arguments"
          "runghc:Run runghc"
          "clean:Clean the local packages"
          "docker:Subcommands specific to Docker use"
        )
        _describe -t subcommands 'stack subcommands' subcommands && ret=0
    esac

    return ret
}

compdef _stack_commands stack