#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"

# Set the working folder variable
acorbuild="$(pwd)"


# Create the build folder, move into it removing stale mountpoints and files there.
[ -e build ] && [ ! -d build ] && rm -f build || [ ! -e build ] && mkdir build
cd build
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done


# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.

lb config noauto \
	--binary-images iso-hybrid \
	--mode debian \
	--architectures amd64 \
	--linux-flavours amd64 \
	--distribution bookworm \
	--archive-areas "main contrib non-free non-free-firmware" \
	--mirror-bootstrap https://deb.debian.org/debian \
	--parent-mirror-bootstrap https://deb.debian.org/debian \
	--parent-mirror-chroot https://deb.debian.org/debian \
	--parent-mirror-chroot-security https://security.debian.org/debian-security  \
	--parent-mirror-binary https://deb.debian.org/debian \
	--parent-mirror-binary-security https://security.debian.org/debian-security  \
	--mirror-chroot https://deb.debian.org/debian \
	--mirror-chroot-security https://security.debian.org/debian-security \
	--updates true \
	--security true \
	--backports false \
	--cache true \
	--apt-recommends true \
	--iso-application AcorOS \
	--win32-loader false \
	--iso-preparer acoros-https://sourceforge.net/projects/acor-os/ \
	--iso-publisher acoros-https://sourceforge.net/projects/acor-os/ \
	--iso-volume AcorOS \
	--image-name "AcorOS" \
	--win32-loader false \
	--checksums sha512 \
	--zsync false \
     "${@}"


# Install the Kde Desktop 
mkdir -p $acorbuild/build/config/package-lists
echo plasma-desktop > $acorbuild/build/config/package-lists/desktop.list.chroot 

# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
linux-headers-amd64
locales
nala
dbus-x11
ntp
acoros-keyring
xorg 
xserver-xorg 
xserver-xorg-input-synaptics 
xserver-xorg-input-all 
xserver-xorg-video-vmware 
xserver-xorg-video-all
w64codecs
ark
pulseaudio 
pavucontrol-qt
pavucontrol-qt-l10n
alsa-utils
aptitude 
synaptic 
gparted 
apt-config-auto-update 
libelf-dev 
htop 
desktop-base 
python3-gi-cairo
gvfs-backends 
samba 
gnome-packagekit 
iso-flag-png 
network-manager 
gufw
acoros-icons 
blue-papirus-icons 
brown-papirus-icons 
papirus-cyan-icons 
papirus-dark-grey 
papirus-icon-theme 
materia-gtk-theme 
materia-kde 
orchis-gtk-theme
cups 
system-config-printer 
plymouth
plymouth-themes
sddm
kde-config-sddm
acoros-kde-wallpapers 
acoros-kde-configs 
plasma-discover-backend-flatpak 
konsole 
dolphin dolphin-plugins 
qtcurve
yakuake
bluedevil 
kamera 
kate 
kcalc 
kde-spectacle 
kdeconnect 
kmag 
kscreen 
okular 
okular-extra-backends 
partitionmanager 
kmenuedit 
plasma-browser-integration 
print-manager 
kfind 
kdenetwork
kde-style-breeze 
kde-style-oxygen-qt5 
kde-style-qtcurve-qt5 
gtk2-engines-qtcurve
kde-config-gtk-style
kde-config-gtk-style-preview 
kde-config-screenlocker 
kde-config-systemd
plasma-nm
gtk2-engines-oxygen 
gtk2-engines-qtcurve 
gtk2-engines 
gtk3-engines-breeze
bleachbit
dconf-editor
gimp 
gimp-data-extras 
skanlite 
digikam
neofetch 
timeshift
transmission-gtk 
thunderbird 
thunderbird-l10n-pt-br 
thunderbird-l10n-pt-pt 
thunderbird-l10n-de 
thunderbird-l10n-en-gb 
thunderbird-l10n-es-es 
thunderbird-l10n-fr 
thunderbird-l10n-it
chromium
chromium-l10n
libreoffice 
libreoffice-kf5 
libreoffice-qt5
libreoffice-l10n-pt 
libreoffice-l10n-pt-br 
libreoffice-l10n-de 
libreoffice-l10n-en-gb 
libreoffice-l10n-es 
libreoffice-l10n-fr 
libreoffice-l10n-it 
printer-driver-cups-pdf
kmahjongg 
2048-qt 
ksudoku 
dreamchess
guvcview 
vlc 
calamares-settings-acoros-kde
calamares 
gdebi 
f2fs-tools
xfsprogs
xfsdump
grub-pc

" > $acorbuild/build/config/package-lists/packages.list.chroot 


# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer, for offline use. 
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned

" > $acorbuild/build/config/package-lists/installer.list.binary 


# Setup the chroot structure
mkdir -p $acorbuild/build/config/archives
mkdir -p $acorbuild/build/config/includes.binary
mkdir -p $acorbuild/build/config/hooks/live
mkdir -p $acorbuild/build/config/hooks/normal
mkdir -p $acorbuild/build/config/includes.chroot/usr/share/applications
mkdir -p $acorbuild/build/config/includes.chroot/etc/live/config.conf.d
mkdir -p $acorbuild/build/config/includes.chroot/usr/share/distro-info
mkdir -p $acorbuild/build/config/includes.chroot//usr/share/python-apt/templates
mkdir -p $acorbuild/build/config/includes.chroot/etc/dpkg/origins
mkdir -p $acorbuild/build/config/includes.chroot/usr/bin
mkdir -p $acorbuild/build/config/includes.chroot/usr/local/bin
mkdir -p $acorbuild/build/config/includes.chroot/etc/lightdm
mkdir -p $acorbuild/build/config/includes.chroot/boot/grub
mkdir -p $acorbuild/build/config/includes.chroot/etc/default
mkdir -p $acorbuild/build/config/includes.chroot/boot/grub
mkdir -p $acorbuild/build/config/includes.chroot/etc/sddm.conf.d

# Copy Configs to the chroot
cp $acorbuild/acoruserconfig/* $acorbuild/build/config/includes.chroot/etc/live/config.conf.d
cp $acorbuild/acorapplication/* $acorbuild/build/config/includes.chroot/usr/share/applications
cp $acorbuild/acorhooks/live/* $acorbuild/build/config/hooks/live
cp $acorbuild/acorhooks/normal/* $acorbuild/build/config/hooks/normal
cp $acorbuild/acorgrub/grub $acorbuild/build/config/includes.chroot/etc/default
cp $acorbuild/acorsddm/* $acorbuild/build/config/includes.chroot/etc/sddm.conf.d 

cp -r $acorbuild/acorbootloaders/* $acorbuild/build/config/includes.binary
cp -r $acorbuild/acorrepos/* $acorbuild/build/config/archives
cp -r $acorbuild/acorcsv/* $acorbuild/build/config/includes.chroot/usr/share/distro-info
cp -r $acorbuild/acorgrub/themes $acorbuild/build/config/includes.chroot/boot/grub

#symlinks chroot
ln -s Debian.info $acorbuild/build/config/includes.chroot/usr/share/python-apt/templates/Acoros.info
ln -s Debian.mirrors $acorbuild/build/config/includes.chroot/usr/share/python-apt/templates/Acoros.mirrors
ln -s debian.csv $acorbuild/build/config/includes.chroot/usr/share/distro-info/acoros.csv
ln -s acoros $acorbuild/build/config/includes.chroot/etc/dpkg/origins/default



# Build the ISO #
lb build  #--debug --verbose 


