69 lines
2.4 KiB
Bash
Executable File
69 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||
if [[ $EUID -ne 0 ]]; then
|
||
echo "❌ Bitte als root ausführen!"
|
||
exit 1
|
||
fi
|
||
|
||
# Tatsächlichen Benutzer ermitteln (nicht root)
|
||
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
|
||
echo "❌ Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
|
||
exit 1
|
||
fi
|
||
|
||
USER_NAME="$SUDO_USER"
|
||
USER_HOME=$(eval echo ~$USER_NAME)
|
||
|
||
read -p "❓ Soll die shell für $USER_NAME auf ZSH gesetzt werden? (j/n) [n]: " answer
|
||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||
|
||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||
# Eintrag aus getent passwd holen
|
||
USER_ENTRY=$(getent passwd "$USER_NAME")
|
||
|
||
# Backup der passwd Datei
|
||
cp /etc/passwd /etc/passwd.bak
|
||
|
||
if grep -q "^$USER_NAME:" /etc/passwd; then
|
||
# Existierenden Eintrag aktualisieren
|
||
sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd
|
||
echo "ℹ️ Shell für $USER_NAME wurde auf zsh aktualisiert."
|
||
else
|
||
# Neuen Eintrag hinzufügen
|
||
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
|
||
echo "$UPDATED_ENTRY" >>/etc/passwd
|
||
echo "ℹ️ Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell."
|
||
fi
|
||
|
||
# Repository klonen
|
||
REPO_DIR="$USER_HOME/Debian-Hyprland"
|
||
sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Debian-Hyprland.git "$REPO_DIR"
|
||
|
||
# Ordner nach ~/.oh-my-zsh/themes kopieren
|
||
THEME_SRC="$REPO_DIR/assets/add_zsh_theme"
|
||
THEME_DEST="$USER_HOME/.oh-my-zsh/themes"
|
||
|
||
if [[ -d "$THEME_SRC" ]]; then
|
||
sudo -u "$USER_NAME" mkdir -p "$THEME_DEST"
|
||
sudo -u "$USER_NAME" cp -r "$THEME_SRC"/* "$THEME_DEST/"
|
||
echo "🎨 ZSH-Theme wurde nach $THEME_DEST kopiert."
|
||
else
|
||
echo "⚠️ Fehler: Theme-Ordner wurde nicht gefunden!"
|
||
fi
|
||
|
||
# Repository löschen
|
||
rm -rf "$REPO_DIR"
|
||
|
||
# /etc/profile in /etc/zsh/zprofile einfügen, falls nicht bereits vorhanden
|
||
if ! grep -q "source /etc/profile" /etc/zsh/zprofile; then
|
||
echo "source /etc/profile" >>/etc/zsh/zprofile
|
||
echo "🔧 'source /etc/profile' wurde in /etc/zsh/zprofile hinzugefügt."
|
||
else
|
||
echo "ℹ️ 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden."
|
||
fi
|
||
fi
|
||
|
||
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."
|