Feat: Passt das Skript für Arch an.
This commit is contained in:
74
3_ZshRegister.sh
Executable file
74
3_ZshRegister.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/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
|
||||
# ZSH-Installation prüfen und ggf. installieren
|
||||
if ! command -v zsh &> /dev/null; then
|
||||
echo "ℹ️ ZSH wird installiert..."
|
||||
sudo pacman -S --noconfirm zsh
|
||||
fi
|
||||
|
||||
# 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/Arch-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."
|
||||
Reference in New Issue
Block a user