From 2f12e12cbc6d57345f52f9eeddb49a42414d797e Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Thu, 9 Jul 2026 09:50:25 +0200 Subject: bootstrap: Verschiebe die Skripte nach 'bootstrap/' --- bootstrap/neovim-dict.sh | 33 +++++++ bootstrap/neovim.sh | 198 +++++++++++++++++++++++++++++++++++++++++ scripts/bootstrap-nvim-dict.sh | 33 ------- scripts/bootstrap-nvim.sh | 198 ----------------------------------------- 4 files changed, 231 insertions(+), 231 deletions(-) create mode 100755 bootstrap/neovim-dict.sh create mode 100755 bootstrap/neovim.sh delete mode 100755 scripts/bootstrap-nvim-dict.sh delete mode 100755 scripts/bootstrap-nvim.sh diff --git a/bootstrap/neovim-dict.sh b/bootstrap/neovim-dict.sh new file mode 100755 index 0000000..fa29728 --- /dev/null +++ b/bootstrap/neovim-dict.sh @@ -0,0 +1,33 @@ +#!/bin/sh +set -eu + +SPELL_DIR="$HOME/.local/share/nvim/site/spell" +mkdir -p "$SPELL_DIR" + +cd "$SPELL_DIR" + +download() { + url="$1" + file=$(basename "$url") + + if [ -f "$file" ]; then + echo "Skipping $file (already exists)" + return + fi + + echo "Downloading $file..." + if command -v wget >/dev/null 2>&1; then + wget -q --show-progress "$url" + elif command -v curl >/dev/null 2>&1; then + curl -fLO "$url" + else + echo "ERROR: neither wget nor curl found" + exit 1 + fi +} + +# Deutsche Wörterbücher +download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.spl" +download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.sug" + +echo "Deutsche Wörterbücher für Neovim installiert!" diff --git a/bootstrap/neovim.sh b/bootstrap/neovim.sh new file mode 100755 index 0000000..56a5247 --- /dev/null +++ b/bootstrap/neovim.sh @@ -0,0 +1,198 @@ +#!/bin/sh + +set -eu + +OS="$(uname -s)" + +die() { + printf '%s\n' "$*" >&2 + exit 1 +} + +have() { + command -v "$1" >/dev/null 2>&1 +} + +check_prerequisites() { + case "$OS" in + Darwin) + if ! have brew; then + die "Homebrew ist nicht installiert." + fi + ;; + FreeBSD) + if ! have doas; then + die "doas ist nicht installiert." + fi + ;; + *) + die "Nicht unterstütztes Betriebssystem: $OS" + ;; + esac +} + +setup_homebrew_env() { + case "$OS" in + Darwin) + export HOMEBREW_NO_AUTO_UPDATE=1 + export HOMEBREW_NO_INSTALL_CLEANUP=1 + ;; + esac +} + +install_pkg() { + binary="$1" + package="$2" + + if have "$binary"; then + printf "✓ %-32s vorhanden\n" "$binary" + return + fi + + printf "→ Installiere %s\n" "$package" + + case "$OS" in + Darwin) + brew install "$package" + ;; + FreeBSD) + doas pkg install -y "$package" + ;; + esac +} + +install_npm() { + binary="$1" + package="$2" + + if have "$binary"; then + printf "✓ %-32s vorhanden\n" "$binary" + return + fi + + if ! have npm; then + die "npm wurde nicht gefunden." + fi + + printf "→ Installiere npm-Paket %s\n" "$package" + npm install -g "$package" +} + +install_pip() { + python="$1" + package="$2" + + if "$python" -c "import $package" >/dev/null 2>&1; then + printf "✓ %-32s vorhanden\n" "$package" + return + fi + + printf "→ Installiere Python-Paket %s\n" "$package" + env \ + -u C_INCLUDE_PATH \ + -u CPLUS_INCLUDE_PATH \ + -u LIBRARY_PATH \ + "$python" -m pip install --no-cache-dir "$package" +} + +setup_python_provider() { + VENV="$HOME/.local/venv/nvim" + PYTHON="${PYTHON:-python3}" + + if ! have "$PYTHON"; then + die "Python wurde nicht gefunden." + fi + + if [ ! -x "$VENV/bin/python" ]; then + printf "→ Erzeuge Python-Venv %s\n" "$VENV" + + mkdir -p "$(dirname "$VENV")" + "$PYTHON" -m venv "$VENV" + fi + + install_pip "$VENV/bin/python" pynvim +} + +install_prerequisites() { + install_pkg curl curl + install_pkg git git + install_pkg node node + install_pkg python3 python +} + +install_providers() { + install_npm neovim-node-host neovim + setup_python_provider +} + +install_formatters() { + install_pkg gawk gawk + install_pkg jq jq + install_npm prettier prettier + install_pkg ruff ruff + install_pkg shfmt shfmt + install_pkg stylua stylua + install_pkg yamlfmt yamlfmt + + case "$OS" in + Darwin) + install_pkg clang-format clang-format + ;; + FreeBSD) + install_pkg xmllint libxml2 + ;; + esac +} + +install_tools() { + install_pkg rg ripgrep + + case "$OS" in + Darwin) + install_pkg gmake make + install_pkg fd fd + install_pkg tree-sitter tree-sitter + ;; + FreeBSD) + install_pkg gmake gmake + install_pkg fd fd-find + install_pkg tree-sitter tree-sitter-cli + ;; + esac +} + +install_lsp() { + install_npm basedpyright-langserver basedpyright + install_npm bash-language-server bash-language-server + + case "$OS" in + Darwin) + install_pkg shellcheck shellcheck + ;; + FreeBSD) + install_pkg shellcheck hs-ShellCheck + ;; + esac + + install_pkg clangd llvm + install_npm vscode-html-language-server vscode-langservers-extracted + install_npm vscode-json-language-server vscode-langservers-extracted + install_pkg lua-language-server lua-language-server + install_npm prisma-language-server @prisma/language-server + install_npm vtsls @vtsls/language-server +} + +main() { + check_prerequisites + setup_homebrew_env + + install_prerequisites + install_providers + install_formatters + install_tools + install_lsp + + printf "\nBootstrap abgeschlossen.\n" +} + +main "$@" 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 @@ -#!/bin/sh -set -eu - -SPELL_DIR="$HOME/.local/share/nvim/site/spell" -mkdir -p "$SPELL_DIR" - -cd "$SPELL_DIR" - -download() { - url="$1" - file=$(basename "$url") - - if [ -f "$file" ]; then - echo "Skipping $file (already exists)" - return - fi - - echo "Downloading $file..." - if command -v wget >/dev/null 2>&1; then - wget -q --show-progress "$url" - elif command -v curl >/dev/null 2>&1; then - curl -fLO "$url" - else - echo "ERROR: neither wget nor curl found" - exit 1 - fi -} - -# Deutsche Wörterbücher -download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.spl" -download "https://ftp.nluug.nl/pub/vim/runtime/spell/de.utf-8.sug" - -echo "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 @@ -#!/bin/sh - -set -eu - -OS="$(uname -s)" - -die() { - printf '%s\n' "$*" >&2 - exit 1 -} - -have() { - command -v "$1" >/dev/null 2>&1 -} - -check_prerequisites() { - case "$OS" in - Darwin) - if ! have brew; then - die "Homebrew ist nicht installiert." - fi - ;; - FreeBSD) - if ! have doas; then - die "doas ist nicht installiert." - fi - ;; - *) - die "Nicht unterstütztes Betriebssystem: $OS" - ;; - esac -} - -setup_homebrew_env() { - case "$OS" in - Darwin) - export HOMEBREW_NO_AUTO_UPDATE=1 - export HOMEBREW_NO_INSTALL_CLEANUP=1 - ;; - esac -} - -install_pkg() { - binary="$1" - package="$2" - - if have "$binary"; then - printf "✓ %-32s vorhanden\n" "$binary" - return - fi - - printf "→ Installiere %s\n" "$package" - - case "$OS" in - Darwin) - brew install "$package" - ;; - FreeBSD) - doas pkg install -y "$package" - ;; - esac -} - -install_npm() { - binary="$1" - package="$2" - - if have "$binary"; then - printf "✓ %-32s vorhanden\n" "$binary" - return - fi - - if ! have npm; then - die "npm wurde nicht gefunden." - fi - - printf "→ Installiere npm-Paket %s\n" "$package" - npm install -g "$package" -} - -install_pip() { - python="$1" - package="$2" - - if "$python" -c "import $package" >/dev/null 2>&1; then - printf "✓ %-32s vorhanden\n" "$package" - return - fi - - printf "→ Installiere Python-Paket %s\n" "$package" - env \ - -u C_INCLUDE_PATH \ - -u CPLUS_INCLUDE_PATH \ - -u LIBRARY_PATH \ - "$python" -m pip install --no-cache-dir "$package" -} - -setup_python_provider() { - VENV="$HOME/.local/venv/nvim" - PYTHON="${PYTHON:-python3}" - - if ! have "$PYTHON"; then - die "Python wurde nicht gefunden." - fi - - if [ ! -x "$VENV/bin/python" ]; then - printf "→ Erzeuge Python-Venv %s\n" "$VENV" - - mkdir -p "$(dirname "$VENV")" - "$PYTHON" -m venv "$VENV" - fi - - install_pip "$VENV/bin/python" pynvim -} - -install_prerequisites() { - install_pkg curl curl - install_pkg git git - install_pkg node node - install_pkg python3 python -} - -install_providers() { - install_npm neovim-node-host neovim - setup_python_provider -} - -install_formatters() { - install_pkg gawk gawk - install_pkg jq jq - install_npm prettier prettier - install_pkg ruff ruff - install_pkg shfmt shfmt - install_pkg stylua stylua - install_pkg yamlfmt yamlfmt - - case "$OS" in - Darwin) - install_pkg clang-format clang-format - ;; - FreeBSD) - install_pkg xmllint libxml2 - ;; - esac -} - -install_tools() { - install_pkg rg ripgrep - - case "$OS" in - Darwin) - install_pkg gmake make - install_pkg fd fd - install_pkg tree-sitter tree-sitter - ;; - FreeBSD) - install_pkg gmake gmake - install_pkg fd fd-find - install_pkg tree-sitter tree-sitter-cli - ;; - esac -} - -install_lsp() { - install_npm basedpyright-langserver basedpyright - install_npm bash-language-server bash-language-server - - case "$OS" in - Darwin) - install_pkg shellcheck shellcheck - ;; - FreeBSD) - install_pkg shellcheck hs-ShellCheck - ;; - esac - - install_pkg clangd llvm - install_npm vscode-html-language-server vscode-langservers-extracted - install_npm vscode-json-language-server vscode-langservers-extracted - install_pkg lua-language-server lua-language-server - install_npm prisma-language-server @prisma/language-server - install_npm vtsls @vtsls/language-server -} - -main() { - check_prerequisites - setup_homebrew_env - - install_prerequisites - install_providers - install_formatters - install_tools - install_lsp - - printf "\nBootstrap abgeschlossen.\n" -} - -main "$@" -- cgit v1.3