diff --git a/post-install.sh b/post-install.sh index a0ca22c..b498746 100755 --- a/post-install.sh +++ b/post-install.sh @@ -6,33 +6,16 @@ set -euo pipefail -# Desktop or server ? -echo -echo "Type desktop or server depending on what you want to do." -read -p "> " desktop_or_server - -# BIOS or UEFI ? -echo -echo "Type bios or uefi depending on the machine you have." -read -p "> " bios_or_uefi - ################################################################################ ### Bootloader -case "$bios_or_uefi" in - bios) - echo "Enter the disk id where you want the bootloader to be installed. (eg. sda)" - read -p "> " grub_disk - grub-install --modules=part_gpt "/dev/$grub_disk" - ;; - uefi) - grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi - ;; - *) - echo "Invalid choice." - exit 1 - ;; -esac +if [[ -d /sys/firmware/efi ]]; then + grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi +else + echo "Enter the disk id where you want the bootloader to be installed. (eg. sda)" + read -rp "> " grub_disk + grub-install --modules=part_gpt "/dev/$grub_disk" +fi # Generate grub menu grub-mkconfig -o /boot/grub/grub.cfg @@ -43,7 +26,7 @@ grub-mkconfig -o /boot/grub/grub.cfg # Set localization echo echo "Enter your UTF-8 locale or let empty for keeping default one. (eg. fr_FR)" -read -p "> " utf8_locale +read -rp "> " utf8_locale if [[ -n $utf8_locale ]]; then # sed -i 's/export LANG=en_US.UTF-8/export LANG='$utf8_locale'.UTF-8/g' /etc/profile.d/lang.sh sed -i "s/^export LANG=.*/export LANG=${utf8_locale}.UTF-8/" /etc/profile.d/lang.sh @@ -60,40 +43,52 @@ grub-mkconfig -o /boot/grub/grub.cfg ################################################################################ ### Usage specific configuration -case "$desktop_or_server" in - desktop) - # Blacklist irrelevant groups - grep -qxF "e/" /etc/slackpkg/blacklist || echo "e/" >> /etc/slackpkg/blacklist - grep -qxF "xfce/" /etc/slackpkg/blacklist || echo "xfce/" >> /etc/slackpkg/blacklist - # X11 keymap - echo - echo "Enter your keymap or let empty for keeping default one. (eg. fr)" - read -p "> " keymap - if [[ -n $keymap ]]; then - mkdir -p /etc/X11/xorg.conf.d - cp /usr/share/X11/xorg.conf.d/90-keyboard-layout-evdev.conf /etc/X11/xorg.conf.d/ - # sed -i '0,/Option "XkbLayout" "us"/s//Option "XkbLayout" "'$keymap'"/' /etc/X11/xorg.conf.d/90-keyboard-layout-evdev.conf - sed -i "0,/Option \"XkbLayout\" \"us\"/s//Option \"XkbLayout\" \"$keymap\"/" /etc/X11/xorg.conf.d/90-keyboard-layout-evdev.conf - fi - # Runlevel - sed -i 's/id:3:initdefault:/id:4:initdefault:/g' /etc/inittab - ;; - server) - # Blacklist irrelevant groups - grep -qxF "e/" /etc/slackpkg/blacklist || echo "e/" >> /etc/slackpkg/blacklist - grep -qxF "kde/" /etc/slackpkg/blacklist || echo "kde/" >> /etc/slackpkg/blacklist - grep -qxF "t/" /etc/slackpkg/blacklist || echo "t/" >> /etc/slackpkg/blacklist - grep -qxF "tcl/" /etc/slackpkg/blacklist || echo "tcl/" >> /etc/slackpkg/blacklist - grep -qxF "x/" /etc/slackpkg/blacklist || echo "x/" >> /etc/slackpkg/blacklist - grep -qxF "xap/" /etc/slackpkg/blacklist || echo "xap/" >> /etc/slackpkg/blacklist - grep -qxF "xfce/" /etc/slackpkg/blacklist || echo "xfce/" >> /etc/slackpkg/blacklist - grep -qxF "y/" /etc/slackpkg/blacklist || echo "y/" >> /etc/slackpkg/blacklist - ;; - *) - echo "Invalid choice." - exit 1 - ;; -esac +# Desktop or server ? +while true; do + echo + echo "Type desktop or server depending on what you want to do." + read -rp "> " desktop_or_server + case "$desktop_or_server" in + desktop) + # Blacklist irrelevant groups + blacklist="e/ + xfce/" + for i in $blacklist; do + grep -qxF "$i" /etc/slackpkg/blacklist || echo "$i" >> /etc/slackpkg/blacklist + done + # X11 keymap + echo + echo "Enter your keymap or let empty for keeping default one. (eg. fr)" + read -p "> " keymap + if [[ -n $keymap ]]; then + mkdir -p /etc/X11/xorg.conf.d + cp /usr/share/X11/xorg.conf.d/90-keyboard-layout-evdev.conf /etc/X11/xorg.conf.d/ + sed -i "0,/Option \"XkbLayout\" \"us\"/s//Option \"XkbLayout\" \"$keymap\"/" /etc/X11/xorg.conf.d/90-keyboard-layout-evdev.conf + fi + # Runlevel + sed -i 's/id:3:initdefault:/id:4:initdefault:/g' /etc/inittab + break + ;; + server) + # Blacklist irrelevant groups + blacklist="e/ + kde/ + t/ + tcl/ + x/ + xap/ + xfce/ + y/" + for i in $blacklist; do + grep -qxF "$i" /etc/slackpkg/blacklist || echo "$i" >> /etc/slackpkg/blacklist + done + break + ;; + *) + echo "Invalid choice." + ;; + esac +done ################################################################################ ### User