aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2026-07-09 09:50:25 +0200
committerThomas Schmucker <ts@its1.de>2026-07-09 09:50:25 +0200
commit2f12e12cbc6d57345f52f9eeddb49a42414d797e (patch)
tree5a783b0d86fea0f695554914f537052264fe755f /scripts
parent436fcdbd0d79ef011149bd6d42c8a3e28fad6151 (diff)
downloaddotfiles-2f12e12cbc6d57345f52f9eeddb49a42414d797e.tar.gz
dotfiles-2f12e12cbc6d57345f52f9eeddb49a42414d797e.tar.bz2
dotfiles-2f12e12cbc6d57345f52f9eeddb49a42414d797e.zip
bootstrap: Verschiebe die Skripte nach 'bootstrap/'
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/bootstrap-nvim-dict.sh33
-rwxr-xr-xscripts/bootstrap-nvim.sh198
2 files changed, 0 insertions, 231 deletions
diff --git a/scripts/bootstrap-nvim-dict.sh b/scripts/bootstrap-nvim-dict.sh
deleted file mode 100755
index fa29728..0000000
--- a/scripts/bootstrap-nvim-dict.sh
+++ /dev/null
@@ -1,33 +0,0 @@
1#!/bin/sh
2set -eu
3
4SPELL_DIR="$HOME/.local/share/nvim/site/spell"
5mkdir -p "$SPELL_DIR"
6
7cd "$SPELL_DIR"
8
9download() {
10 url="$1"
11 file=$(basename "$url")
12
13 if [ -f "$file" ]; then
14 echo "Skipping $file (already exists)"
15 return
16 fi
17
18 echo "Downloading $file..."
19 if command -v wget >/dev/null 2>&1; then
20 wget -q --show-progress "$url"
21 elif command -v curl >/dev/null 2>&1; then
22 curl -fLO "$url"
23 else
24 echo "ERROR: neither wget nor curl found"
25 exit 1
26 fi
27}
28
29# Deutsche Wörterbücher
30download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.spl"
31download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.sug"
32
33echo "Deutsche Wörterbücher für Neovim installiert!"
diff --git a/scripts/bootstrap-nvim.sh b/scripts/bootstrap-nvim.sh
deleted file mode 100755
index 56a5247..0000000
--- a/scripts/bootstrap-nvim.sh
+++ /dev/null
@@ -1,198 +0,0 @@
1#!/bin/sh
2
3set -eu
4
5OS="$(uname -s)"
6
7die() {
8 printf '%s\n' "$*" >&2
9 exit 1
10}
11
12have() {
13 command -v "$1" >/dev/null 2>&1
14}
15
16check_prerequisites() {
17 case "$OS" in
18 Darwin)
19 if ! have brew; then
20 die "Homebrew ist nicht installiert."
21 fi
22 ;;
23 FreeBSD)
24 if ! have doas; then
25 die "doas ist nicht installiert."
26 fi
27 ;;
28 *)
29 die "Nicht unterstütztes Betriebssystem: $OS"
30 ;;
31 esac
32}
33
34setup_homebrew_env() {
35 case "$OS" in
36 Darwin)
37 export HOMEBREW_NO_AUTO_UPDATE=1
38 export HOMEBREW_NO_INSTALL_CLEANUP=1
39 ;;
40 esac
41}
42
43install_pkg() {
44 binary="$1"
45 package="$2"
46
47 if have "$binary"; then
48 printf "✓ %-32s vorhanden\n" "$binary"
49 return
50 fi
51
52 printf "→ Installiere %s\n" "$package"
53
54 case "$OS" in
55 Darwin)
56 brew install "$package"
57 ;;
58 FreeBSD)
59 doas pkg install -y "$package"
60 ;;
61 esac
62}
63
64install_npm() {
65 binary="$1"
66 package="$2"
67
68 if have "$binary"; then
69 printf "✓ %-32s vorhanden\n" "$binary"
70 return
71 fi
72
73 if ! have npm; then
74 die "npm wurde nicht gefunden."
75 fi
76
77 printf "→ Installiere npm-Paket %s\n" "$package"
78 npm install -g "$package"
79}
80
81install_pip() {
82 python="$1"
83 package="$2"
84
85 if "$python" -c "import $package" >/dev/null 2>&1; then
86 printf "✓ %-32s vorhanden\n" "$package"
87 return
88 fi
89
90 printf "→ Installiere Python-Paket %s\n" "$package"
91 env \
92 -u C_INCLUDE_PATH \
93 -u CPLUS_INCLUDE_PATH \
94 -u LIBRARY_PATH \
95 "$python" -m pip install --no-cache-dir "$package"
96}
97
98setup_python_provider() {
99 VENV="$HOME/.local/venv/nvim"
100 PYTHON="${PYTHON:-python3}"
101
102 if ! have "$PYTHON"; then
103 die "Python wurde nicht gefunden."
104 fi
105
106 if [ ! -x "$VENV/bin/python" ]; then
107 printf "→ Erzeuge Python-Venv %s\n" "$VENV"
108
109 mkdir -p "$(dirname "$VENV")"
110 "$PYTHON" -m venv "$VENV"
111 fi
112
113 install_pip "$VENV/bin/python" pynvim
114}
115
116install_prerequisites() {
117 install_pkg curl curl
118 install_pkg git git
119 install_pkg node node
120 install_pkg python3 python
121}
122
123install_providers() {
124 install_npm neovim-node-host neovim
125 setup_python_provider
126}
127
128install_formatters() {
129 install_pkg gawk gawk
130 install_pkg jq jq
131 install_npm prettier prettier
132 install_pkg ruff ruff
133 install_pkg shfmt shfmt
134 install_pkg stylua stylua
135 install_pkg yamlfmt yamlfmt
136
137 case "$OS" in
138 Darwin)
139 install_pkg clang-format clang-format
140 ;;
141 FreeBSD)
142 install_pkg xmllint libxml2
143 ;;
144 esac
145}
146
147install_tools() {
148 install_pkg rg ripgrep
149
150 case "$OS" in
151 Darwin)
152 install_pkg gmake make
153 install_pkg fd fd
154 install_pkg tree-sitter tree-sitter
155 ;;
156 FreeBSD)
157 install_pkg gmake gmake
158 install_pkg fd fd-find
159 install_pkg tree-sitter tree-sitter-cli
160 ;;
161 esac
162}
163
164install_lsp() {
165 install_npm basedpyright-langserver basedpyright
166 install_npm bash-language-server bash-language-server
167
168 case "$OS" in
169 Darwin)
170 install_pkg shellcheck shellcheck
171 ;;
172 FreeBSD)
173 install_pkg shellcheck hs-ShellCheck
174 ;;
175 esac
176
177 install_pkg clangd llvm
178 install_npm vscode-html-language-server vscode-langservers-extracted
179 install_npm vscode-json-language-server vscode-langservers-extracted
180 install_pkg lua-language-server lua-language-server
181 install_npm prisma-language-server @prisma/language-server
182 install_npm vtsls @vtsls/language-server
183}
184
185main() {
186 check_prerequisites
187 setup_homebrew_env
188
189 install_prerequisites
190 install_providers
191 install_formatters
192 install_tools
193 install_lsp
194
195 printf "\nBootstrap abgeschlossen.\n"
196}
197
198main "$@"