##install
text --non-interactive
url --url http://mirror.in2p3.fr/pub/linux/rocky/9/BaseOS/x86_64/os/
#url --url http://rockylinux.mirrors.ovh.net/9/BaseOS/x86_64/os/
sshpw --username=root --plaintext root
lang fr_FR.UTF-8
keyboard fr-latin9
%include /tmp/part-include
firewall --service=ssh
selinux --disabled
rootpw  --allow-ssh --plaintext root
timezone --utc Europe/Paris
firstboot --disabled
reboot

%packages
%include /tmp/package-list
%end

%addon com_redhat_kdump --disable --reserve-mb=128
%end

%pre
#!/bin/sh

KSFEATURE=$(cat /proc/cmdline | awk 'BEGIN {RS=" ";FS="="} /KSFEATURE/ {print $2}')

bootsz=512
bootefisz=200
rootpartsz=4096
swappartsz=2048
varpartsz=2048
vgname=vm
pvminsize=8192
pvmaxsize=32768

# Determines partitionning

# consider the first n drives having at least 8GB and the same size
drives=($(cat /proc/partitions | sort -k4 | awk 'BEGIN { nbdrives=0; };FNR>2 && $1 != 253  && $1 != 7 && $2%16 == 0 && $3/1024/1024>=1 { if (nbdrives == 0) { size=$3;drives=$4; } else if ($3 != size) { exit; } else { drives=drives " " $4; };nbdrives++; };END { print drives; }'))
drivelist=$(echo ${drives[*]} | sed -e "s/ /,/g")
nbdrives=${#drives[*]}
#Write out partition scheme based on whether there are 1 or 2 hard drives
echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include
echo "zerombr" >> /tmp/part-include
echo "clearpart --drives $drivelist --all --initlabel" >> /tmp/part-include
echo "bootloader --location=mbr --driveorder=$drivelist" >> /tmp/part-include
echo "part /boot --fstype xfs --size=$bootsz --ondisk=${drives[0]} --asprimary" >> /tmp/part-include
echo "part /boot/efi --fstype vfat --size=$bootefisz --ondisk=${drives[0]} --asprimary" >> /tmp/part-include
echo "part pv.1 --size=$pvminsize --grow --maxsize=$pvmaxsize --ondisk=${drives[0]} --fstype \"physical volume (LVM)\" --asprimary" >> /tmp/part-include
echo "volgroup $vgname pv.1" >> /tmp/part-include
echo "logvol / --fstype xfs --name=root --vgname=$vgname --size=$rootpartsz" >> /tmp/part-include
echo "logvol swap --fstype swap --name=swap --vgname=$vgname --size=$swappartsz" >> /tmp/part-include
echo "logvol /var --fstype xfs --name=var --vgname=$vgname --size=$varpartsz" >> /tmp/part-include

# determines the package list

echo -n > /tmp/package-list
echo "@^Minimal Install" >> /tmp/package-list
echo "telnet" >> /tmp/package-list
echo "ftp" >> /tmp/package-list
echo "traceroute " >> /tmp/package-list
echo "chrony " >> /tmp/package-list
echo "-acpid" >> /tmp/package-list
echo "-kexec-tools" >> /tmp/package-list
echo "-plymouth" >> /tmp/package-list

%end

%post
#
%end

