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

# Set the working folder variable PepOSx86_64
uchinanchu="$(pwd)"
[ "$TODAY" ] || TODAY=$(date -u +"%Y-%m-%d")

# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ; 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 \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--backports true \
--binary-images iso-hybrid \
--cache true \
--checksums sha512 \
--distribution bullseye \
--firmware-binary true \
--firmware-chroot true \
--image-name "PepOS" \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "${TODAY} 1" \
--linux-flavours amd64 \
--mode debian \
--security true \
--updates true \
--win32-loader false \
--zsync false \


# Install the XFCE Desktop 
mkdir -p     $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot 

# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
adwaita-icon-theme 
numix-icon-theme 
alsa-utils 
arandr 
bluez 
bluez-firmware 
calamares-settings-debian 
calamares 
cups 
curl 
dconf-editor 
dkms 
dbus-x11 
efibootmgr 
firmware-linux 
firmware-linux-nonfree 
firmware-misc-nonfree 
firmware-realtek 
firmware-atheros 
firmware-bnx2 
firmware-bnx2x 
firmware-brcm80211 
firmware-intelwimax 
firmware-iwlwifi 
firmware-libertas 
firmware-netxen 
firmware-zd1211 
firmware-ralink 
fonts-cantarell 
fonts-liberation 
gdebi 
gir1.2-webkit2-4.0 
git 
gparted 
gnome-disk-utility 
gnome-system-tools 
grub-pc 
gvfs-backends 
inputattach 
inxi 
locales 
menulibre 
nala 
nemo 
neofetch 
network-manager-gnome 
ntp 
nvidia-detect 
os-prober 
pulseaudio-module-bluetooth 
python3-pip 
python3-tk 
python3-bs4 
python3-requests 
python3-ttkthemes 
python3-pyqt5 
python3-pyqt5.qtsvg 
python3-pyqt5.qtwebkit 
python3-pyqt5.qtwebengine 
python3-apt 
screenfetch 
simple-scan 
smartmontools 
smbclient 
sqlite3 
synaptic 
system-config-printer 
mousepad 
xfce4-battery-plugin 
xfce4-clipman-plugin 
xfce4-power-manager 
xfce4-taskmanager 
xfce4-terminal 
xfce4-screenshooter 
xfce4-whiskermenu-plugin 
yad 
wireless-tools 
wget 
f2fs-tools 
xfsprogs 

" > $uchinanchu/fusato/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
grub-efi-ia32-bin
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned

" > $uchinanchu/fusato/config/package-lists/installer.list.binary 


# Setup the chroot structure
mkdir -p $uchinanchu/fusato/config/includes.binary
mkdir -p $uchinanchu/fusato/config/includes.bootstrap/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/local/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/applications
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/icons/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/boot/grub
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
#mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf

mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
mkdir -p $uchinanchu/fusato/config/packages.chroot


# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases  $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/netinstall-* $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
#cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/../MakePackageLists.sh $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart

# Copy directory contents to the chroot
cp $uchinanchu/pepapplication/*  $uchinanchu/fusato/config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/grub $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/pepmultimedia/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
#cp $uchinanchu/peppackages/calamares_3.2.57*amd64.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/calamares-settings-debian_11.0.5-2_all.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/deb-multimedia*.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/pepuserconfig/* $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pepwallpaper/* $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
cp $uchinanchu/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
cp $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep

# Copy recursive files and sub-directories, containing symlinks.
#cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes

cp -r $uchinanchu/pepgrub/themes $uchinanchu/fusato/config/includes.chroot/boot/grub
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/peploadersplash/boot  $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peploadersplash/isolinux  $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
#cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config


# Resolves Synaptics issue. Might be better in a conf hook.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Debian.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Debian.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s debian.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv


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