163 lines
5.1 KiB
Bash
Executable File
163 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e # Skript bricht bei Fehlern ab
|
|
|
|
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
|
if [[ $EUID -eq 0 ]]; then
|
|
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
|
|
exit 1
|
|
fi
|
|
|
|
# Überprüfen, ob Flatpak installiert ist
|
|
if ! command -v flatpak &>/dev/null; then
|
|
echo "❌ Fehler: Flatpak ist nicht installiert. Bitte installiere es und versuche es erneut."
|
|
exit 1
|
|
fi
|
|
|
|
# Flatpak Apps installieren (nur falls noch nicht als DEB installiert)
|
|
declare -A FLATPAK_APPS=(
|
|
["org.libreoffice.LibreOffice"]="LibreOffice"
|
|
["dev.vencord.Vesktop"]="Vesktop"
|
|
["org.mozilla.Thunderbird"]="Thunderbird"
|
|
)
|
|
|
|
for APP in "${!FLATPAK_APPS[@]}"; do
|
|
if dpkg -l | grep -iq "${FLATPAK_APPS[$APP]}"; then
|
|
echo "✅ ${FLATPAK_APPS[$APP]} ist bereits als DEB-Paket installiert."
|
|
elif flatpak list | grep -q "$APP"; then
|
|
echo "✅ ${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert."
|
|
else
|
|
echo "🔄 Installiere ${FLATPAK_APPS[$APP]} als Flatpak..."
|
|
flatpak install -y flathub "$APP"
|
|
fi
|
|
|
|
done
|
|
|
|
# Dynamischen Vorlagen-Ordner ermitteln
|
|
TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen")
|
|
mkdir -p "$TEMPLATE_DIR"
|
|
|
|
# Prüfen, ob LibreOffice als Flatpak installiert ist
|
|
if flatpak list | grep -q "org.libreoffice.LibreOffice"; then
|
|
LO_CMD="flatpak run org.libreoffice.LibreOffice"
|
|
elif command -v libreoffice &>/dev/null; then
|
|
LO_CMD="libreoffice"
|
|
else
|
|
echo "❌ Fehler: LibreOffice ist weder als Flatpak noch als DEB-Paket installiert."
|
|
exit 1
|
|
fi
|
|
|
|
# LibreOffice-Vorlagen erstellen, falls nicht vorhanden
|
|
if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Writer.ott" ]]; then
|
|
echo "🔄 Erstelle LibreOffice Writer-Vorlage..."
|
|
$LO_CMD --headless --convert-to ott --outdir "$TEMPLATE_DIR" /dev/null
|
|
else
|
|
echo "✅ LibreOffice Writer-Vorlage ist bereits vorhanden."
|
|
fi
|
|
|
|
if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Calc.ots" ]]; then
|
|
echo "🔄 Erstelle LibreOffice Calc-Vorlage..."
|
|
$LO_CMD --headless --convert-to ots --outdir "$TEMPLATE_DIR" /dev/null
|
|
else
|
|
echo "✅ LibreOffice Calc-Vorlage ist bereits vorhanden."
|
|
fi
|
|
|
|
# Spotify-Installation
|
|
echo "🎵 Überprüfe Spotify-Installation..."
|
|
SPOTIFY_KEY="/etc/apt/trusted.gpg.d/spotify.gpg"
|
|
SPOTIFY_REPO="/etc/apt/sources.list.d/spotify.list"
|
|
|
|
if dpkg -l | grep -q "spotify-client"; then
|
|
echo "✅ Spotify ist bereits installiert."
|
|
else
|
|
echo "🔄 Installiere Spotify..."
|
|
|
|
if [[ ! -f "$SPOTIFY_KEY" ]]; then
|
|
curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | sudo gpg --dearmor -o "$SPOTIFY_KEY"
|
|
else
|
|
echo "✅ Spotify GPG-Key ist bereits vorhanden."
|
|
fi
|
|
|
|
if [[ ! -f "$SPOTIFY_REPO" ]]; then
|
|
echo "deb http://repository.spotify.com stable non-free" | sudo tee "$SPOTIFY_REPO"
|
|
else
|
|
echo "✅ Spotify-Repository ist bereits konfiguriert."
|
|
fi
|
|
|
|
sudo apt update && sudo apt install -y spotify-client
|
|
fi
|
|
|
|
# Benötigte Abhängigkeiten prüfen und installieren
|
|
dependencies=(man fzf ripgrep awk w3m coreutils parallel)
|
|
for dep in "${dependencies[@]}"; do
|
|
if ! command -v "$dep" &>/dev/null; then
|
|
echo "🔄 Installiere $dep..."
|
|
sudo apt install -y "$dep"
|
|
else
|
|
echo "✅ $dep ist bereits installiert."
|
|
fi
|
|
|
|
done
|
|
|
|
# Tealdeer (tldr-Client) installieren
|
|
if ! command -v tldr &>/dev/null; then
|
|
echo "🔄 Installiere tealdeer..."
|
|
sudo apt install -y tealdeer
|
|
else
|
|
echo "✅ Tealdeer ist bereits installiert."
|
|
fi
|
|
|
|
# tealdeer Autoupdate konfigurieren
|
|
TEALDEER_CONFIG=~/.config/tealdeer/config.toml
|
|
mkdir -p ~/.config/tealdeer
|
|
if ! grep -q "\[updates\]" "$TEALDEER_CONFIG" 2>/dev/null; then
|
|
echo -e "\n[updates]" >> "$TEALDEER_CONFIG"
|
|
fi
|
|
if grep -q "^auto_update" "$TEALDEER_CONFIG" 2>/dev/null; then
|
|
sed -i 's/^auto_update.*/auto_update = true/' "$TEALDEER_CONFIG"
|
|
else
|
|
echo "auto_update = true" >> "$TEALDEER_CONFIG"
|
|
fi
|
|
|
|
# Wikiman installieren, falls nicht vorhanden
|
|
if ! command -v wikiman &>/dev/null; then
|
|
echo "🔄 Installiere Wikiman..."
|
|
|
|
# Prüfen, ob `make` installiert ist
|
|
if ! command -v make &>/dev/null; then
|
|
echo "🔄 Installiere make..."
|
|
sudo apt install -y make
|
|
fi
|
|
|
|
git clone 'https://github.com/filiparag/wikiman' ~/wikiman
|
|
cd ~/wikiman || exit
|
|
|
|
# Die neueste stabile Version auschecken
|
|
git checkout "$(git describe --tags | cut -d'-' -f1)"
|
|
|
|
# Kompilieren und installieren
|
|
make all
|
|
sudo make install
|
|
|
|
# Cleanup
|
|
cd ..
|
|
rm -rf ~/wikiman
|
|
|
|
echo "✅ Wikiman wurde erfolgreich installiert!"
|
|
else
|
|
echo "✅ Wikiman ist bereits installiert."
|
|
fi
|
|
|
|
# Arch-Wiki für Wikiman installieren, falls nicht vorhanden
|
|
if ! wikiman -list | grep -q "arch"; then
|
|
echo "🔄 Installiere Arch Wiki für Wikiman..."
|
|
curl -L 'https://raw.githubusercontent.com/filiparag/wikiman/master/Makefile' -o 'wikiman-makefile'
|
|
make -f ./wikiman-makefile source-arch
|
|
sudo make -f ./wikiman-makefile source-install
|
|
sudo make -f ./wikiman-makefile clean
|
|
else
|
|
echo "✅ Arch Wiki ist bereits installiert."
|
|
fi
|
|
|
|
echo "✅ Alle Programme wurden erfolgreich installiert!"
|