aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbootstrap-nvim.sh141
1 files changed, 141 insertions, 0 deletions
diff --git a/bootstrap-nvim.sh b/bootstrap-nvim.sh
new file mode 100755
index 0000000..d3135a5
--- /dev/null
+++ b/bootstrap-nvim.sh
@@ -0,0 +1,141 @@
1#!/bin/sh
2
3set -eu
4
5OS="$(uname -s)"
6
7have() {
8 command -v "$1" >/dev/null 2>&1
9}
10
11check_prerequisites() {
12 case "$OS" in
13 Darwin)
14 if ! have brew; then
15 echo "Homebrew ist nicht installiert."
16 exit 1
17 fi
18 ;;
19 esac
20}
21
22setup_homebrew_env() {
23 case "$OS" in
24 Darwin)
25 export HOMEBREW_NO_AUTO_UPDATE=1
26 export HOMEBREW_NO_INSTALL_CLEANUP=1
27 ;;
28 esac
29}
30
31install() {
32 case "$OS" in
33 Darwin)
34 brew install "$1"
35 ;;
36 FreeBSD)
37 pkg install -y "$1"
38 ;;
39 esac
40}
41
42install_pkg() {
43 binary="$1"
44 package="$2"
45
46 if have "$binary"; then
47 printf "✓ %-32s vorhanden\n" "$binary"
48 return
49 fi
50
51 printf "→ Installiere %s\n" "$package"
52 install "$package"
53}
54
55install_npm() {
56 binary="$1"
57 package="$2"
58
59 if have "$binary"; then
60 printf "✓ %-32s vorhanden\n" "$binary"
61 return
62 fi
63
64 if ! have npm; then
65 echo "npm wurde nicht gefunden."
66 exit 1
67 fi
68
69 printf "→ Installiere npm-Paket %s\n" "$package"
70 npm install -g "$package"
71}
72
73# === Voraussetzungen ===
74
75check_prerequisites
76setup_homebrew_env
77
78install_pkg curl curl
79install_pkg git git
80install_pkg node node
81install_pkg python3 python
82
83# === Formatter ===
84
85install_pkg gawk gawk
86install_pkg jq jq
87install_npm prettier prettier
88install_pkg ruff ruff
89install_pkg shfmt shfmt
90install_pkg stylua stylua
91install_pkg yamlfmt yamlfmt
92
93case "$OS" in
94Darwin)
95 install_pkg clang-format clang-format
96 ;;
97FreeBSD)
98 install_pkg xmllint libxml2
99 ;;
100esac
101
102# === Tools ===
103
104install_pkg rg ripgrep
105
106case "$OS" in
107Darwin)
108 install_pkg gmake make
109 install_pkg fd fd
110 install_pkg tree-sitter tree-sitter
111 ;;
112FreeBSD)
113 install_pkg gmake gmake
114 install_pkg fd fd-find
115 install_pkg tree-sitter tree-sitter-cli
116 ;;
117esac
118
119# === Language Server ===
120
121install_npm basedpyright-langserver basedpyright
122install_npm bash-language-server bash-language-server
123
124case "$OS" in
125Darwin)
126 install_pkg shellcheck shellcheck
127 ;;
128FreeBSD)
129 install_pkg shellcheck hs-ShellCheck
130 ;;
131esac
132
133install_pkg clangd llvm
134install_npm vscode-html-language-server vscode-langservers-extracted
135install_npm vscode-json-language-server vscode-langservers-extracted
136install_pkg lua-language-server lua-language-server
137install_npm prisma-language-server @prisma/language-server
138install_npm vtsls @vtsls/language-server
139
140echo
141echo "Bootstrap abgeschlossen."