aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/neovim.sh
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2026-08-12 09:19:03 +0200
committerThomas Schmucker <ts@its1.de>2026-08-12 09:19:03 +0200
commit6e5882a2fd02d30206ab9ca8aa5847b8ea09196c (patch)
tree75d3b91f9005e51b93a37b44f3ad23ce4f48bc35 /bootstrap/neovim.sh
parent41c676453cd32fac760ff26e092c9dc81874739f (diff)
downloaddotfiles-6e5882a2fd02d30206ab9ca8aa5847b8ea09196c.tar.gz
dotfiles-6e5882a2fd02d30206ab9ca8aa5847b8ea09196c.tar.bz2
dotfiles-6e5882a2fd02d30206ab9ca8aa5847b8ea09196c.zip
Normalize line endings
Diffstat (limited to 'bootstrap/neovim.sh')
-rwxr-xr-xbootstrap/neovim.sh342
1 files changed, 171 insertions, 171 deletions
diff --git a/bootstrap/neovim.sh b/bootstrap/neovim.sh
index 158de80..475853a 100755
--- a/bootstrap/neovim.sh
+++ b/bootstrap/neovim.sh
@@ -1,171 +1,171 @@
1#!/bin/sh 1#!/bin/sh
2 2
3set -eu 3set -eu
4 4
5OS="$(uname -s)" 5OS="$(uname -s)"
6 6
7die() { 7die() {
8 printf 'Fehler: %s\n' "$*" >&2 8 printf 'Fehler: %s\n' "$*" >&2
9 exit 1 9 exit 1
10} 10}
11 11
12have() { 12have() {
13 command -v "$1" >/dev/null 2>&1 13 command -v "$1" >/dev/null 2>&1
14} 14}
15 15
16check_prerequisites() { 16check_prerequisites() {
17 case "$OS" in 17 case "$OS" in
18 Darwin) 18 Darwin)
19 if ! have brew; then 19 if ! have brew; then
20 die "Homebrew ist nicht installiert." 20 die "Homebrew ist nicht installiert."
21 fi 21 fi
22 ;; 22 ;;
23 FreeBSD) 23 FreeBSD)
24 if ! have doas; then 24 if ! have doas; then
25 die "doas ist nicht installiert." 25 die "doas ist nicht installiert."
26 fi 26 fi
27 ;; 27 ;;
28 *) 28 *)
29 die "Nicht unterstütztes Betriebssystem: $OS" 29 die "Nicht unterstütztes Betriebssystem: $OS"
30 ;; 30 ;;
31 esac 31 esac
32} 32}
33 33
34setup_homebrew_env() { 34setup_homebrew_env() {
35 case "$OS" in 35 case "$OS" in
36 Darwin) 36 Darwin)
37 export HOMEBREW_NO_AUTO_UPDATE=1 37 export HOMEBREW_NO_AUTO_UPDATE=1
38 export HOMEBREW_NO_INSTALL_CLEANUP=1 38 export HOMEBREW_NO_INSTALL_CLEANUP=1
39 ;; 39 ;;
40 esac 40 esac
41} 41}
42 42
43install_pkg() { 43install_pkg() {
44 binary="$1" 44 binary="$1"
45 package="$2" 45 package="$2"
46 46
47 if have "$binary"; then 47 if have "$binary"; then
48 printf "✓ %-32s vorhanden\n" "$binary" 48 printf "✓ %-32s vorhanden\n" "$binary"
49 return 49 return
50 fi 50 fi
51 51
52 printf "→ Installiere %s\n" "$package" 52 printf "→ Installiere %s\n" "$package"
53 53
54 case "$OS" in 54 case "$OS" in
55 Darwin) 55 Darwin)
56 brew install "$package" 56 brew install "$package"
57 ;; 57 ;;
58 FreeBSD) 58 FreeBSD)
59 doas pkg install -y "$package" 59 doas pkg install -y "$package"
60 ;; 60 ;;
61 esac 61 esac
62} 62}
63 63
64install_npm() { 64install_npm() {
65 binary="$1" 65 binary="$1"
66 package="$2" 66 package="$2"
67 67
68 if have "$binary"; then 68 if have "$binary"; then
69 printf "✓ %-32s vorhanden\n" "$binary" 69 printf "✓ %-32s vorhanden\n" "$binary"
70 return 70 return
71 fi 71 fi
72 72
73 if ! have npm; then 73 if ! have npm; then
74 die "npm wurde nicht gefunden." 74 die "npm wurde nicht gefunden."
75 fi 75 fi
76 76
77 printf "→ Installiere npm-Paket %s\n" "$package" 77 printf "→ Installiere npm-Paket %s\n" "$package"
78 npm install -g "$package" 78 npm install -g "$package"
79} 79}
80 80
81install_prerequisites() { 81install_prerequisites() {
82 install_pkg curl curl 82 install_pkg curl curl
83 install_pkg git git 83 install_pkg git git
84 install_pkg node node 84 install_pkg node node
85} 85}
86 86
87install_formatters() { 87install_formatters() {
88 install_pkg gawk gawk 88 install_pkg gawk gawk
89 install_pkg jq jq 89 install_pkg jq jq
90 install_npm prettier prettier 90 install_npm prettier prettier
91 install_pkg ruff ruff 91 install_pkg ruff ruff
92 install_pkg shfmt shfmt 92 install_pkg shfmt shfmt
93 install_pkg stylua stylua 93 install_pkg stylua stylua
94 install_pkg yamlfmt yamlfmt 94 install_pkg yamlfmt yamlfmt
95 95
96 case "$OS" in 96 case "$OS" in
97 Darwin) 97 Darwin)
98 install_pkg clang-format clang-format 98 install_pkg clang-format clang-format
99 ;; 99 ;;
100 FreeBSD) 100 FreeBSD)
101 install_pkg xmllint libxml2 101 install_pkg xmllint libxml2
102 ;; 102 ;;
103 esac 103 esac
104} 104}
105 105
106install_tools() { 106install_tools() {
107 install_pkg rg ripgrep 107 install_pkg rg ripgrep
108 108
109 case "$OS" in 109 case "$OS" in
110 Darwin) 110 Darwin)
111 # Ein Clipboard-Tool ist als `pbcopy` bereits als Systemtool unter Macos 111 # Ein Clipboard-Tool ist als `pbcopy` bereits als Systemtool unter Macos
112 # vorinstalliert. 112 # vorinstalliert.
113 install_pkg gmake make 113 install_pkg gmake make
114 install_pkg fd fd 114 install_pkg fd fd
115 install_pkg tree-sitter tree-sitter 115 install_pkg tree-sitter tree-sitter
116 ;; 116 ;;
117 FreeBSD) 117 FreeBSD)
118 install_pkg xclip xclip 118 install_pkg xclip xclip
119 install_pkg gmake gmake 119 install_pkg gmake gmake
120 install_pkg fd fd-find 120 install_pkg fd fd-find
121 install_pkg tree-sitter tree-sitter-cli 121 install_pkg tree-sitter tree-sitter-cli
122 ;; 122 ;;
123 esac 123 esac
124} 124}
125 125
126install_lsp() { 126install_lsp() {
127 install_npm basedpyright-langserver basedpyright 127 install_npm basedpyright-langserver basedpyright
128 install_npm bash-language-server bash-language-server 128 install_npm bash-language-server bash-language-server
129 129
130 case "$OS" in 130 case "$OS" in
131 Darwin) 131 Darwin)
132 install_pkg shellcheck shellcheck 132 install_pkg shellcheck shellcheck
133 ;; 133 ;;
134 FreeBSD) 134 FreeBSD)
135 install_pkg shellcheck hs-ShellCheck 135 install_pkg shellcheck hs-ShellCheck
136 ;; 136 ;;
137 esac 137 esac
138 138
139 install_pkg clangd llvm 139 install_pkg clangd llvm
140 install_npm vscode-html-language-server vscode-langservers-extracted 140 install_npm vscode-html-language-server vscode-langservers-extracted
141 install_npm vscode-json-language-server vscode-langservers-extracted 141 install_npm vscode-json-language-server vscode-langservers-extracted
142 install_pkg lua-language-server lua-language-server 142 install_pkg lua-language-server lua-language-server
143 install_npm prisma-language-server @prisma/language-server 143 install_npm prisma-language-server @prisma/language-server
144 install_npm vtsls @vtsls/language-server 144 install_npm vtsls @vtsls/language-server
145} 145}
146 146
147install_analysis() { 147install_analysis() {
148 # sonar-scanner wird direkt von nvim/lua/config/usercmds.lua (:SonarScan) 148 # sonar-scanner wird direkt von nvim/lua/config/usercmds.lua (:SonarScan)
149 # und nvim/scripts/sonarqube.sh (:SonarIssues) genutzt. Nur beruflich 149 # und nvim/scripts/sonarqube.sh (:SonarIssues) genutzt. Nur beruflich
150 # unter macOS im Einsatz, deshalb kein FreeBSD-Zweig. 150 # unter macOS im Einsatz, deshalb kein FreeBSD-Zweig.
151 case "$OS" in 151 case "$OS" in
152 Darwin) 152 Darwin)
153 install_pkg sonar-scanner sonar-scanner 153 install_pkg sonar-scanner sonar-scanner
154 ;; 154 ;;
155 esac 155 esac
156} 156}
157 157
158main() { 158main() {
159 check_prerequisites 159 check_prerequisites
160 setup_homebrew_env 160 setup_homebrew_env
161 161
162 install_prerequisites 162 install_prerequisites
163 install_formatters 163 install_formatters
164 install_tools 164 install_tools
165 install_lsp 165 install_lsp
166 install_analysis 166 install_analysis
167 167
168 printf "\nNeovim-Bootstrap abgeschlossen.\n" 168 printf "\nNeovim-Bootstrap abgeschlossen.\n"
169} 169}
170 170
171main "$@" 171main "$@"