aboutsummaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap/git.sh156
-rwxr-xr-xbootstrap/neovim-dict.sh88
-rwxr-xr-xbootstrap/neovim.sh342
-rwxr-xr-xbootstrap/zsh.sh266
4 files changed, 426 insertions, 426 deletions
diff --git a/bootstrap/git.sh b/bootstrap/git.sh
index e782cad..b4f285f 100755
--- a/bootstrap/git.sh
+++ b/bootstrap/git.sh
@@ -1,78 +1,78 @@
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_prerequisites() { 64install_prerequisites() {
65 install_pkg git git 65 install_pkg git git
66 install_pkg delta git-delta 66 install_pkg delta git-delta
67} 67}
68 68
69main() { 69main() {
70 check_prerequisites 70 check_prerequisites
71 setup_homebrew_env 71 setup_homebrew_env
72 72
73 install_prerequisites 73 install_prerequisites
74 74
75 printf "\nGit-Bootstrap abgeschlossen.\n" 75 printf "\nGit-Bootstrap abgeschlossen.\n"
76} 76}
77 77
78main "$@" 78main "$@"
diff --git a/bootstrap/neovim-dict.sh b/bootstrap/neovim-dict.sh
index ee51db7..77a7db8 100755
--- a/bootstrap/neovim-dict.sh
+++ b/bootstrap/neovim-dict.sh
@@ -1,44 +1,44 @@
1#!/bin/sh 1#!/bin/sh
2set -eu 2set -eu
3 3
4SPELL_DIR="$HOME/.local/share/nvim/site/spell" 4SPELL_DIR="$HOME/.local/share/nvim/site/spell"
5mkdir -p "$SPELL_DIR" 5mkdir -p "$SPELL_DIR"
6 6
7cd "$SPELL_DIR" 7cd "$SPELL_DIR"
8 8
9die() { 9die() {
10 printf 'Fehler: %s\n' "$*" >&2 10 printf 'Fehler: %s\n' "$*" >&2
11 exit 1 11 exit 1
12} 12}
13 13
14have() { 14have() {
15 command -v "$1" >/dev/null 2>&1 15 command -v "$1" >/dev/null 2>&1
16} 16}
17 17
18download() { 18download() {
19 url="$1" 19 url="$1"
20 file=$(basename "$url") 20 file=$(basename "$url")
21 21
22 if [ -f "$file" ]; then 22 if [ -f "$file" ]; then
23 printf "✓ %-32s vorhanden\n" "$file" 23 printf "✓ %-32s vorhanden\n" "$file"
24 return 24 return
25 fi 25 fi
26 26
27 printf "→ Lade %s herunter\n" "$file" 27 printf "→ Lade %s herunter\n" "$file"
28 if have wget; then 28 if have wget; then
29 wget -q --show-progress "$url" 29 wget -q --show-progress "$url"
30 elif have curl; then 30 elif have curl; then
31 curl -fLO "$url" 31 curl -fLO "$url"
32 else 32 else
33 die "weder wget noch curl gefunden" 33 die "weder wget noch curl gefunden"
34 fi 34 fi
35} 35}
36 36
37main() { 37main() {
38 download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.spl" 38 download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.spl"
39 download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.sug" 39 download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.sug"
40 40
41 printf "\nWörterbücher für Neovim installiert!\n" 41 printf "\nWörterbücher für Neovim installiert!\n"
42} 42}
43 43
44main "$@" 44main "$@"
diff --git a/bootstrap/neovim.sh b/bootstrap/neovim.sh
index 475853a..158de80 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 "$@"
diff --git a/bootstrap/zsh.sh b/bootstrap/zsh.sh
index 8cea3b6..0be7ff3 100755
--- a/bootstrap/zsh.sh
+++ b/bootstrap/zsh.sh
@@ -1,133 +1,133 @@
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_prerequisites() { 64install_prerequisites() {
65 install_pkg zsh zsh 65 install_pkg zsh zsh
66} 66}
67 67
68install_plugin() { 68install_plugin() {
69 # zsh-syntax-highlighting/zsh-autosuggestions haben kein eigenes Binary, 69 # zsh-syntax-highlighting/zsh-autosuggestions haben kein eigenes Binary,
70 # deshalb Pruefung anhand des von zsh/zshrc gesourceten Pfads. 70 # deshalb Pruefung anhand des von zsh/zshrc gesourceten Pfads.
71 file="$1" 71 file="$1"
72 package="$2" 72 package="$2"
73 73
74 if [ -e "$file" ]; then 74 if [ -e "$file" ]; then
75 printf "✓ %-32s vorhanden\n" "$package" 75 printf "✓ %-32s vorhanden\n" "$package"
76 return 76 return
77 fi 77 fi
78 78
79 printf "→ Installiere %s\n" "$package" 79 printf "→ Installiere %s\n" "$package"
80 80
81 case "$OS" in 81 case "$OS" in
82 Darwin) 82 Darwin)
83 brew install "$package" 83 brew install "$package"
84 ;; 84 ;;
85 FreeBSD) 85 FreeBSD)
86 doas pkg install -y "$package" 86 doas pkg install -y "$package"
87 ;; 87 ;;
88 esac 88 esac
89} 89}
90 90
91install_plugins() { 91install_plugins() {
92 case "$OS" in 92 case "$OS" in
93 Darwin) 93 Darwin)
94 install_plugin "/opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" zsh-syntax-highlighting 94 install_plugin "/opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" zsh-syntax-highlighting
95 install_plugin "/opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh" zsh-autosuggestions 95 install_plugin "/opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh" zsh-autosuggestions
96 ;; 96 ;;
97 FreeBSD) 97 FreeBSD)
98 install_plugin "/usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" zsh-syntax-highlighting 98 install_plugin "/usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" zsh-syntax-highlighting
99 install_plugin "/usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh" zsh-autosuggestions 99 install_plugin "/usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh" zsh-autosuggestions
100 ;; 100 ;;
101 esac 101 esac
102} 102}
103 103
104install_tools() { 104install_tools() {
105 install_pkg pwgen pwgen 105 install_pkg pwgen pwgen
106 install_pkg mc mc 106 install_pkg mc mc
107} 107}
108 108
109set_default_shell() { 109set_default_shell() {
110 zsh_path="$(command -v zsh)" || die "zsh wurde nicht gefunden." 110 zsh_path="$(command -v zsh)" || die "zsh wurde nicht gefunden."
111 111
112 if [ "${SHELL:-}" = "$zsh_path" ]; then 112 if [ "${SHELL:-}" = "$zsh_path" ]; then
113 printf "✓ %-32s bereits Login-Shell\n" "zsh" 113 printf "✓ %-32s bereits Login-Shell\n" "zsh"
114 return 114 return
115 fi 115 fi
116 116
117 printf "→ Setze zsh als Login-Shell (chsh)\n" 117 printf "→ Setze zsh als Login-Shell (chsh)\n"
118 chsh -s "$zsh_path" 118 chsh -s "$zsh_path"
119} 119}
120 120
121main() { 121main() {
122 check_prerequisites 122 check_prerequisites
123 setup_homebrew_env 123 setup_homebrew_env
124 124
125 install_prerequisites 125 install_prerequisites
126 install_plugins 126 install_plugins
127 install_tools 127 install_tools
128 set_default_shell 128 set_default_shell
129 129
130 printf "\nzsh-Bootstrap abgeschlossen.\n" 130 printf "\nzsh-Bootstrap abgeschlossen.\n"
131} 131}
132 132
133main "$@" 133main "$@"