diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..d4857e1 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo +echo "==============================================" +echo " Debian 13 XFCE Admin Workstation Installer" +echo "==============================================" +echo + +FAILED=() + +chmod +x "$PROJECT_DIR"/install/*.sh + +for script in "$PROJECT_DIR"/install/*.sh; do + echo + echo "==============================================" + echo "==> $(basename "$script")" + echo "==============================================" + + if bash "$script"; then + echo "✔ $(basename "$script") erfolgreich." + else + echo "✘ Fehler in $(basename "$script")" + FAILED+=("$(basename "$script")") + fi +done + +echo +echo "==============================================" + +if [ ${#FAILED[@]} -eq 0 ]; then + echo "Installation erfolgreich abgeschlossen." +else + echo "Folgende Skripte sind fehlgeschlagen:" + printf ' - %s\n' "${FAILED[@]}" + exit 1 +fi + +echo "==============================================" diff --git a/docs/03-terminal.md b/docs/03-terminal.md deleted file mode 100644 index 36a71ac..0000000 --- a/docs/03-terminal.md +++ /dev/null @@ -1,73 +0,0 @@ -# 03 – Terminal - -## Shell - -Bash - ---- - -## Prompt - -Starship - ---- - -## Multiplexer - -tmux - -Prefix - -``` - -CTRL+B - -``` - -Splits - -``` - -Horizontal % - -Vertikal " - -``` - -Mouse - -``` - -SHIFT + Maus markieren - -CTRL+SHIFT+C kopieren - -CTRL+SHIFT+V einfügen - -``` - ---- - -## Fastfetch - -Konfiguration - -``` - -~/.config/fastfetch/config.jsonc - -``` - ---- - -## Dotfiles - -``` - -~/.bashrc - -~/.tmux.conf - -~/.gitconfig - -``` diff --git a/docs/08-git.md b/docs/08-git.md new file mode 100644 index 0000000..49fab90 --- /dev/null +++ b/docs/08-git.md @@ -0,0 +1,28 @@ +# Git + +## Repository klonen + +```bash +git clone https://gitea.webbildhauer.com/dbildhauer/debian13-admin-workstation.git +``` + +## Installation + +```bash +cd debian13-admin-workstation +./install.sh +``` + +## Aktualisieren + +```bash +git pull +``` + +## Änderungen übernehmen + +```bash +git add . +git commit -m "Beschreibung" +git push +``` diff --git a/docs/reports/README.md b/docs/reports/README.md new file mode 100644 index 0000000..f370186 --- /dev/null +++ b/docs/reports/README.md @@ -0,0 +1,3 @@ +# Reports + +Dieses Verzeichnis enthält automatisch erzeugte Systemberichte der installierten Workstation. diff --git a/install.sh b/install.sh deleted file mode 100755 index d4857e1..0000000 --- a/install.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash - -set -Eeuo pipefail - -PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -echo -echo "==============================================" -echo " Debian 13 XFCE Admin Workstation Installer" -echo "==============================================" -echo - -FAILED=() - -chmod +x "$PROJECT_DIR"/install/*.sh - -for script in "$PROJECT_DIR"/install/*.sh; do - echo - echo "==============================================" - echo "==> $(basename "$script")" - echo "==============================================" - - if bash "$script"; then - echo "✔ $(basename "$script") erfolgreich." - else - echo "✘ Fehler in $(basename "$script")" - FAILED+=("$(basename "$script")") - fi -done - -echo -echo "==============================================" - -if [ ${#FAILED[@]} -eq 0 ]; then - echo "Installation erfolgreich abgeschlossen." -else - echo "Folgende Skripte sind fehlgeschlagen:" - printf ' - %s\n' "${FAILED[@]}" - exit 1 -fi - -echo "==============================================" diff --git a/install.sh b/install.sh new file mode 120000 index 0000000..eba5389 --- /dev/null +++ b/install.sh @@ -0,0 +1 @@ +bootstrap.sh \ No newline at end of file diff --git a/install/01-packages.sh b/install/01-packages.sh index 68dd35d..b722228 100644 --- a/install/01-packages.sh +++ b/install/01-packages.sh @@ -7,6 +7,7 @@ echo "==> Installiere Basispakete..." sudo apt install -y \ git \ curl \ + rsync \ wget \ unzip \ zip \ diff --git a/install/09-dotfiles.sh b/install/09-dotfiles.sh index 03bba13..6eefb09 100755 --- a/install/09-dotfiles.sh +++ b/install/09-dotfiles.sh @@ -9,24 +9,22 @@ echo "==> Installiere Dotfiles..." mkdir -p "$HOME/.config" -# Bash -if [ -f "$DOTFILES_DIR/.bashrc" ]; then - cp "$DOTFILES_DIR/.bashrc" "$HOME/.bashrc" -fi +if command -v rsync >/dev/null 2>&1; then + rsync -a "$DOTFILES_DIR/.bashrc" "$HOME/" 2>/dev/null || true + rsync -a "$DOTFILES_DIR/.gitconfig" "$HOME/" 2>/dev/null || true + rsync -a "$DOTFILES_DIR/.tmux.conf" "$HOME/" 2>/dev/null || true -# Git -if [ -f "$DOTFILES_DIR/.gitconfig" ]; then - cp "$DOTFILES_DIR/.gitconfig" "$HOME/.gitconfig" -fi + if [ -d "$DOTFILES_DIR/.config" ]; then + rsync -a --delete "$DOTFILES_DIR/.config/" "$HOME/.config/" + fi +else + cp -f "$DOTFILES_DIR/.bashrc" "$HOME/" 2>/dev/null || true + cp -f "$DOTFILES_DIR/.gitconfig" "$HOME/" 2>/dev/null || true + cp -f "$DOTFILES_DIR/.tmux.conf" "$HOME/" 2>/dev/null || true -# tmux -if [ -f "$DOTFILES_DIR/.tmux.conf" ]; then - cp "$DOTFILES_DIR/.tmux.conf" "$HOME/.tmux.conf" -fi - -# komplette .config -if [ -d "$DOTFILES_DIR/.config" ]; then - cp -a "$DOTFILES_DIR/.config/." "$HOME/.config/" + if [ -d "$DOTFILES_DIR/.config" ]; then + cp -a "$DOTFILES_DIR/.config/." "$HOME/.config/" + fi fi echo "==> Dotfiles erfolgreich installiert." diff --git a/install/11-theme.sh b/install/12-theme.sh similarity index 100% rename from install/11-theme.sh rename to install/12-theme.sh diff --git a/screenshots/.gitkeep b/screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wallpapers/.gitkeep b/wallpapers/.gitkeep new file mode 100644 index 0000000..e69de29