#!/bin/bash
echo "testing uplink..."
ping -c4 8.8.8.8 || (echo "!!!ERROR NO UPLINK - ABORTING!!!" && exit)
echo "Starting base Installer..."
timedatectl
echo "is the clock correct? - if not abort with CTRL+C"
read

#timedatecheckwaitercount=0
#echo "sleeping for 20s"
#for (( i = 0; i < 20; i++ )); do
#	
#    echo $timedatecheckwaitercount s
#    sleep 1s
#    let "timedatecheckwaitercount=timedatecheckwaitercount+1"
#done

echo "Continuing..."

echo -n "Enter blockdev to install on or m for manual partitioning: " 
read blockdev

#autoformat.sh

echo "creating filesystems..."

mkfs.fat "$blockdev"p1
mkswap "$blockdev"p2
mkfs.btrfs "$blockdev"p3

mount "$blockdev"p3 /mnt/

btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@var
btrfs subvolume create /mnt/@etc

umount /mnt

echo "Finished creating Filesystems!"

echo "mounting filesystems..."

mount -o compress=zstd,subvol=@ "$blockdev"p3 /mnt
mkdir -p /mnt/home
mkdir /mnt/efi
mkdir /mnt/var
mkdir /mnt/etc

mount -o compress=zstd,subvol=@home "$blockdev"p3 /mnt/home
mount -o compress=zstd,subvol=@var "$blockdev"p3 /mnt/var
mount -o compress=zstd,subvol=@var "$blockdev"p3 /mnt/etc
mount "$blockdev"p1 /mnt/efi

swapon "$blockdev"p2 
echo "Finished Mounting!"

# The Big Pacstrap(on)
echo "running Pacstrap base install..."
pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber reflector zsh zsh-completions zsh-autosuggestions openssh man sudo

echo "generating fstab from current configuration"
# Fetch the disk mounting points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically
genfstab -U /mnt >> /mnt/etc/fstab

# Check if fstab is fine ( it is if you've faithfully followed the previous steps )
cat /mnt/etc/fstab

cp ~/Dotfiles/setup/chroot-install.sh /mnt/

echo "chrooting into new installation. Please execute /chroot-install.sh in the new installation."
arch-chroot /mnt

echo "unmount and reboot now?"
read
umount -R /mnt
reboot
