refactor: finish moving ssh-* scripts to own installers
[webi-installers/.git] / vim-go / install.sh
1 #!/bin/bash
2
3 function __init_vim_go() {
4     set -e
5     set -u
6
7     mkdir -p "$HOME/.vim/pack/plugins/start"
8     rm -rf "$HOME/.vim/pack/plugins/start/vim-go"
9     git clone --depth=1 https://github.com/fatih/vim-go.git "$HOME/.vim/pack/plugins/start/vim-go"
10
11     # Install go linting tools
12     echo "Building go language tools..."
13     export GO111MODULE=on
14
15     echo ""
16
17     # Official Golang Tooling
18     echo -n "golint: "
19     go get golang.org/x/lint/golint@latest > /dev/null #2>/dev/null
20     echo -n "gopls: "
21     go get golang.org/x/tools/gopls@latest > /dev/null #2>/dev/null
22     echo -n "guru: "
23     go get golang.org/x/tools/cmd/guru@latest > /dev/null #2>/dev/null
24     echo -n "goimports: "
25     go get golang.org/x/tools/cmd/goimports@latest > /dev/null #2>/dev/null
26     echo -n "gorename: "
27     go get golang.org/x/tools/cmd/gorename@latest > /dev/null #2>/dev/null
28     echo -n "gotype: "
29     go get golang.org/x/tools/cmd/gotype@latest > /dev/null #2>/dev/null
30
31     echo -n "golangci-lint: "
32     go get github.com/golangci/golangci-lint/cmd/golangci-lint@latest > /dev/null #2>/dev/null
33
34     # Community Tooling
35     echo -n "fillstruct: "
36     go get github.com/davidrjenni/reftools/cmd/fillstruct@master > /dev/null #2>/dev/null
37     echo -n "godef: "
38     go get github.com/rogpeppe/godef@master > /dev/null #2>/dev/null
39     echo -n "motion: "
40     go get github.com/fatih/motion@master > /dev/null #2>/dev/null
41     echo -n "errcheck: "
42     go get github.com/kisielk/errcheck > /dev/null #2>/dev/null
43     echo -n "dlv: "
44     go get github.com/go-delve/delve/cmd/dlv@master > /dev/null #2>/dev/null
45     echo -n "iferr: "
46     go get github.com/koron/iferr@master > /dev/null #2>/dev/null
47     echo -n "impl: "
48     go get github.com/josharian/impl@master > /dev/null #2>/dev/null
49     echo -n "keyify: "
50     go get honnef.co/go/tools/cmd/keyify@master > /dev/null #2>/dev/null
51     echo -n "gomodifytags: "
52     go get github.com/fatih/gomodifytags@master > /dev/null #2>/dev/null
53     echo -n "asmfmt: "
54     go get github.com/klauspost/asmfmt/cmd/asmfmt@master > /dev/null #2>/dev/null
55     echo -n "gotags: "
56     go get github.com/jstemmer/gotags > /dev/null #2>/dev/null
57
58     if [ -f "$HOME/.vimrc" ]; then
59         set +e
60         if ! grep 'source.*go.vim' -r ~/.vimrc; then
61             mkdir -p ~/.vim/plugins
62             printf '\n" Golang: reasonable defaults from webinstall.dev/vim-go\n' >> ~/.vimrc
63             printf 'source ~/.vim/plugins/go.vim\n' >> ~/.vimrc
64         fi
65         set -e
66     fi
67
68     if ! [ -f "$HOME/.vim/plugins/go.vim" ]; then
69         mkdir -p ~/.vim/plugins
70         WEBI_HOST=${WEBI_HOST:-"https://webinstall.dev"}
71         curl -fsS -o ~/.vim/plugins/go.vim "$WEBI_HOST/packages/vim-go/go.vim"
72     fi
73
74     echo 'Running :GoInstallBinaries in vim ...'
75     printf ':GoInstallBinaries\n:q\n' | vim -e
76 }
77
78 __init_vim_go