Files
easy-slack/post-install.sh
T
2026-07-01 11:40:51 +02:00

105 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
#
# To be executed before rebooting within a chroot.
#
set -euo pipefail
################################################################################
### Bootloader
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
################################################################################
### Configuration
# Set localization
echo
echo "Enter your UTF-8 locale or let empty for keeping default one. (eg. fr_FR)"
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
fi
# Slackpkg mirror
sed -i '/# https:\/\/mirrors.slackware.com\/slackware\/slackware64-15.0\//s/^# //g' /etc/slackpkg/mirrors
slackpkg update gpg
# Use generic kernel
geninitrd
grub-mkconfig -o /boot/grub/grub.cfg
################################################################################
### Usage specific configuration
# 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
# Add the first user
adduser
################################################################################
### End
echo
echo ">>> Configuration complete."
echo "Exit the chroot and reboot when ready."